Completion Request Trait
Completions are always 3DW (for with data (fmt = b010) and without data (fmt = b000) )
This trait is provided to have same API as other headers with variable size
To obtain this trait new_cmpl_req() function has to be used
Trait release user from dealing with bitfield structures.
Configuration Request Trait:
Configuration Requests Headers are always same size (3DW),
this trait is provided to have same API as other headers with variable size
Memory Request Trait:
Applies to 32 and 64 bits requests as well as legacy IO-Request
(Legacy IO Request has the same structure as MemRead3DW)
Software using the library may want to use trait instead of bitfield structures
Both 3DW (32-bit) and 4DW (64-bit) headers implement this trait
3DW header is also used for all Legacy IO Requests.