• Ira Weiny's avatar
    IB/mad: Add final OPA MAD processing · 8e4349d1
    Ira Weiny authored
    For devices which support OPA MADs
    
       1) Use previously defined SMP support functions.
    
       2) Pass correct base version to ib_create_send_mad when processing OPA MADs.
    
       3) Process out_mad_key_index returned by agents for a response.  This is
          necessary because OPA SMP packets must carry a valid pkey.
    
       4) Carry the correct segment size (OPA vs IBTA) of RMPP messages within
          ib_mad_recv_wc.
    
       5) Handle variable length OPA MADs by:
    
            * Adjusting the 'fake' WC for locally routed SMP's to represent the
              proper incoming byte_len
            * out_mad_size is used from the local HCA agents
                    1) when sending agent responses on the wire
                    2) when passing responses through the local_completions
    		   function
    
    	NOTE: wc.byte_len includes the GRH length and therefore is different
    	      from the in_mad_size specified to the local HCA agents.
    	      out_mad_size should _not_ include the GRH length as it is added
    Signed-off-by: default avatarIra Weiny <ira.weiny@intel.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    8e4349d1
user_mad.c 33.6 KB