Skip to content
  1. Nov 02, 2021
  2. Nov 01, 2021
    • David S. Miller's avatar
      Merge branch 'SMC-tracepoints' · d4a07dc5
      David S. Miller authored
      
      
      Tony Lu says:
      
      ====================
      Tracepoints for SMC
      
      This patch set introduces tracepoints for SMC, including the tracepoints
      basic code. The tracepoitns would help us to track SMC's behaviors by
      automatic tools, or other BPF tools, and zero overhead if not enabled.
      
      Compared with kprobe and other dymatic tools, the tracepoints are
      considered as stable API, and less overhead for tracing with easy-to-use
      API.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4a07dc5
    • Tony Lu's avatar
      net/smc: Introduce tracepoint for smcr link down · a3a0e81b
      Tony Lu authored
      
      
      SMC-R link down event is important to help us find links' issues, we
      should track this event, especially in the single nic mode, which means
      upper layer connection would be shut down. Then find out the direct
      link-down reason in time, not only increased the counter, also the
      location of the code who triggered this event.
      
      Signed-off-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a3a0e81b
    • Tony Lu's avatar
      net/smc: Introduce tracepoints for tx and rx msg · aff3083f
      Tony Lu authored
      
      
      This introduce two tracepoints for smc tx and rx msg to help us
      diagnosis issues of data path. These two tracepoitns don't cover the
      path of CORK or MSG_MORE in tx, just the top half of data path.
      
      Signed-off-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aff3083f
    • Tony Lu's avatar
      net/smc: Introduce tracepoint for fallback · 48262608
      Tony Lu authored
      
      
      This introduces tracepoint for smc fallback to TCP, so that we can track
      which connection and why it fallbacks, and map the clcsocks' pointer with
      /proc/net/tcp to find more details about TCP connections. Compared with
      kprobe or other dynamic tracing, tracepoints are stable and easy to use.
      
      Signed-off-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48262608
    • David S. Miller's avatar
      Merge branch 'amt-driver' · 60088891
      David S. Miller authored
      Taehee Yoo says:
      
      ====================
      amt: add initial driver for Automatic Multicast Tunneling (AMT)
      
      This is an implementation of AMT(Automatic Multicast Tunneling), RFC 7450.
      https://datatracker.ietf.org/doc/html/rfc7450
      
      
      
      This implementation supports IGMPv2, IGMPv3, MLDv1, MLDv2, and IPv4
      underlay.
      
       Summary of RFC 7450
      The purpose of this protocol is to provide multicast tunneling.
      The main use-case of this protocol is to provide delivery multicast
      traffic from a multicast-enabled network to sites that lack multicast
      connectivity to the source network.
      There are two roles in AMT protocol, Gateway, and Relay.
      The main purpose of Gateway mode is to forward multicast listening
      information(IGMP, MLD) to the source.
      The main purpose of Relay mode is to forward multicast data to listeners.
      These multicast traffics(IGMP, MLD, multicast data packets) are tunneled.
      
      Listeners are located behind Gateway endpoint.
      But gateway itself can be a listener too.
      Senders are located behind Relay endpoint.
      
          ___________       _________       _______       ________
         |           |     |         |     |       |     |        |
         | Listeners <-----> Gateway <-----> Relay <-----> Source |
         |___________|     |_________|     |_______|     |________|
            IGMP/MLD---------(encap)----------->
               <-------------(decap)--------(encap)------Multicast Data
      
       Usage of AMT interface
      1. Create gateway interface
      ip link add amtg type amt mode gateway local 10.0.0.1 discovery 10.0.0.2 \
      dev gw1_rt gateway_port 2268 relay_port 2268
      
      2. Create Relay interface
      ip link add amtr type amt mode relay local 10.0.0.2 dev relay_rt \
      relay_port 2268 max_tunnels 4
      
      v1 -> v2:
       - Eliminate sparse warnings.
         - Use bool type instead of __be16 for identifying v4/v6 protocol.
      
      v2 -> v3:
       - Fix compile warning due to unsed variable.
       - Add missing spinlock comment.
       - Update help message of amt in Kconfig.
      
      v3 -> v4:
       - Split patch.
       - Use CHECKSUM_NONE instead of CHECKSUM_UNNECESSARY.
       - Fix compile error.
      
      v4 -> v5:
       - Remove unnecessary rcu_read_lock().
       - Remove unnecessary amt_change_mtu().
       - Change netlink error message.
       - Add validation for IFLA_AMT_LOCAL_IP and IFLA_AMT_DISCOVERY_IP.
       - Add comments in amt.h.
       - Add missing dev_put() in error path of amt_newlink().
       - Fix typo.
       - Add BUILD_BUG_ON() in amt_smb_cb().
       - Use macro instead of magic values.
       - Use kzalloc() instead of kmalloc().
       - Add selftest script.
      
      v5 -> v6:
       - Reset remote_ip in amt_dev_stop().
      
      v6 -> v7:
       - Fix compile error.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60088891