• Min Si's avatar
    Redefined RMA extended packet header in CH3 layer. · ebc70f3d
    Min Si authored
    This patch redefined RMA extended header in CH3 layer based on commit
    25e40e43
    
    . The extended header helps RMA issue RMA-specific header. Each
    OP may define multiple attributes dynamically, or just let it empty.
    Here is a summary of the detailed implementation.
    
    (1) We define a packet type for every kind of extended header, and for
    every kind of OP. For now, we have defined stream_{acc|get_acc},
    derived_{put|get|acc|get_acc} and stream_derived_{acc|get_acc}.
    
    (2) Extended header may contain fixed-attributes, or variable-length
    parts (i.e., dataloop). We define all fixed-attributes in packet
    structure, and followed by variable-length parts.
    For example:
    -------------------------------------------------------------------
    | fixed attributes... | variable-len part 1 | variable-len part 2 |
    -------------------------------------------------------------------
    
    (3) Origin process simply allocates a contig buffer to fill both fixed part
    and variable-len parts, and transfer it to netmod through req; target
    process can specify separate buffers to receive the variable-len parts
    from netmod in order to avoid extra copy (i.e., dataloop).
    
    (4) Each OP has different initialization and packet-handler on origin
    and target side respectively. For now ACC and GET_ACC share generic
    routine since all of their attributes are the same.
    Signed-off-by: default avatarXin Zhao <xinzhao3@illinois.edu>
    Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
    ebc70f3d
mpid_rma_types.h 4.13 KB