1. Aug 22, 2023
  2. Aug 21, 2023
  3. Aug 20, 2023
  4. Aug 19, 2023
    • Eric Dumazet's avatar
      net: add skb_queue_purge_reason and __skb_queue_purge_reason · 4025d3e7
      Eric Dumazet authored
      
      
      skb_queue_purge() and __skb_queue_purge() become wrappers
      around the new generic functions.
      
      New SKB_DROP_REASON_QUEUE_PURGE drop reason is added,
      but users can start adding more specific reasons.
      
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4025d3e7
    • David S. Miller's avatar
      Merge branch 'smc-features' · 5b0a1414
      David S. Miller authored
      
      
      Guangguan Wang says:
      
      ====================
      net/smc: several features's implementation for smc v2.1
      
      This patch set implement several new features in SMC v2.1(https://
      www.ibm.com/support/pages/node/7009315), including vendor unique
      experimental options, max connections per lgr negotiation, max links
      per lgr negotiation.
      
      v1 - v2:
       - rename field fce_v20 to fce_v2_base in struct
         smc_clc_first_contact_ext_v2x
       - use smc_get_clc_first_contact_ext in smc_connect
         _rdma_v2_prepare
       - adding comment about field vendor_oui in struct
         smc_clc_msg_smcd
       - remove comment about SMC_CONN_PER_LGR_MAX in smc_
         clc_srv_v2x_features_validate
       - rename smc_clc_clnt_v2x_features_validate
      
      RFC v2 - v1:
       - more description in commit message
       - modify SMC_CONN_PER_LGR_xxx and SMC_LINKS_ADD_LNK_xxx
         macro defination and usage
       - rename field release_ver to release_nr
       - remove redundant release version check in client
       - explicitly set the rc value in smc_llc_cli/srv_add_link
      
      RFC v1 - RFC v2:
       - Remove ini pointer NULL check and fix code style in
         smc_clc_send_confirm_accept.
       - Optimize the max_conns check in smc_clc_xxx_v2x_features_validate.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b0a1414
    • Guangguan Wang's avatar
      net/smc: Extend SMCR v2 linkgroup netlink attribute · bbed596c
      Guangguan Wang authored
      
      
      Add SMC_NLA_LGR_R_V2_MAX_CONNS and SMC_NLA_LGR_R_V2_MAX_LINKS
      to SMCR v2 linkgroup netlink attribute SMC_NLA_LGR_R_V2 for
      linkgroup's detail info showing.
      
      Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
      Reviewed-by: default avatarJan Karcher <jaka@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbed596c
    • Guangguan Wang's avatar
      net/smc: support max links per lgr negotiation in clc handshake · 69b888e3
      Guangguan Wang authored
      
      
      Support max links per lgr negotiation in clc handshake for SMCR v2.1,
      which is one of smc v2.1 features. Server makes decision for the final
      value of max links based on the client preferred max links and
      self-preferred max links. Here use the minimum value of the client
      preferred max links and server preferred max links.
      
      Client                                       Server
           Proposal(max links(client preferred))
           -------------------------------------->
      
           Accept(max links(accepted value))
      accepted value=min(client preferred, server preferred)
           <-------------------------------------
      
            Confirm(max links(accepted value))
           ------------------------------------->
      
      Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
      Reviewed-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarJan Karcher <jaka@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      69b888e3
    • Guangguan Wang's avatar
      net/smc: support max connections per lgr negotiation · 7f0620b9
      Guangguan Wang authored
      
      
      Support max connections per lgr negotiation for SMCR v2.1,
      which is one of smc v2.1 features. Server makes decision for
      the final value of max conns based on the client preferred
      max conns and self-preferred max conns. Here use the minimum
      value of client preferred max conns and server preferred max
      conns.
      
      Client                                     Server
           Proposal(max conns(client preferred))
           ------------------------------------>
      
           Accept(max conns(accepted value))
      accepted value=min(client preferred, server preferred)
           <-----------------------------------
      
           Confirm(max conns(accepted value))
           ----------------------------------->
      
      Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
      Reviewed-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarJan Karcher <jaka@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f0620b9
    • Guangguan Wang's avatar
      net/smc: support smc v2.x features validate · 6ac1e656
      Guangguan Wang authored
      
      
      Support SMC v2.x features validate for SMC v2.1. This is the frame
      code for SMC v2.x features validate, and will take effects only when
      the negotiated release version is v2.1 or later.
      
      For Server, v2.x features' validation should be done in smc_clc_srv_
      v2x_features_validate when receiving v2.1 or later CLC Proposal Message,
      such as max conns, max links negotiation, the decision of the final
      value of max conns and max links should be made in this function.
      And final check for server when receiving v2.1 or later CLC Confirm
      Message should be done in smc_clc_v2x_features_confirm_check.
      
      For client, v2.x features' validation should be done in smc_clc_clnt_
      v2x_features_validate when receiving v2.1 or later CLC Accept Message,
      for example, the decision to accpt the accepted value or to decline
      should be made in this function.
      
      Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
      Reviewed-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarJan Karcher <jaka@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6ac1e656
    • Guangguan Wang's avatar
      net/smc: add vendor unique experimental options area in clc handshake · 7290178a
      Guangguan Wang authored
      
      
      Add vendor unique experimental options area in clc handshake. In clc
      accept and confirm msg, vendor unique experimental options use the
      16-Bytes reserved field, which defined in struct smc_clc_fce_gid_ext
      in previous version. Because of the struct smc_clc_first_contact_ext
      is widely used and limit the scope of modification, this patch moves
      the 16-Bytes reserved field out of struct smc_clc_fce_gid_ext, and
      followed with the struct smc_clc_first_contact_ext in a new struct
      names struct smc_clc_first_contact_ext_v2x.
      
      For SMC-R first connection, in previous version, the struct smc_clc_
      first_contact_ext and the 16-Bytes reserved field has already been
      included in clc accept and confirm msg. Thus, this patch use struct
      smc_clc_first_contact_ext_v2x instead of the struct smc_clc_first_
      contact_ext and the 16-Bytes reserved field in SMC-R clc accept and
      confirm msg is compatible with previous version.
      
      For SMC-D first connection, in previous version, only the struct smc_
      clc_first_contact_ext is included in clc accept and confirm msg, and
      the 16-Bytes reserved field is not included. Thus, when the negotiated
      smc release version is the version before v2.1, we still use struct
      smc_clc_first_contact_ext for compatible consideration. If the negotiated
      smc release version is v2.1 or later, use struct smc_clc_first_contact_
      ext_v2x instead.
      
      Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
      Reviewed-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarJan Karcher <jaka@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7290178a