1. 31 Oct, 2019 7 commits
    • Guillaume Nault's avatar
      vxlan: drop "vxlan" parameter in vxlan_fdb_alloc() · 1d7a5526
      Guillaume Nault authored
      This parameter has never been used.
      Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@netronome.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1d7a5526
    • Heiner Kallweit's avatar
      net: phy: marvell: add downshift support for 88E1145 · a319fb52
      Heiner Kallweit authored
      Add downshift support for 88E1145, it uses the same downshift
      configuration registers as 88E1111.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a319fb52
    • David S. Miller's avatar
      Merge branch 'ICMP-flow-improvements' · 29f52875
      David S. Miller authored
      Matteo Croce says:
      
      ====================
      ICMP flow improvements
      
      This series improves the flow inspector handling of ICMP packets:
      The first two patches just add some comments in the code which would have saved
      me a few minutes of time, and refactor a piece of code.
      The third one adds to the flow inspector the capability to extract the
      Identifier field, if present, so echo requests and replies are classified
      as part of the same flow.
      The fourth patch uses the function introduced earlier to the bonding driver,
      so echo replies can be balanced across bonding slaves.
      
      v1 -> v2:
       - remove unused struct members
       - add an helper to check for the Id field
       - use a local flow_dissector_key in the bonding to avoid
         changing behaviour of the flow dissector
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      29f52875
    • Matteo Croce's avatar
      bonding: balance ICMP echoes in layer3+4 mode · 58deb77c
      Matteo Croce authored
      The bonding uses the L4 ports to balance flows between slaves. As the ICMP
      protocol has no ports, those packets are sent all to the same device:
      
          # tcpdump -qltnni veth0 ip |sed 's/^/0: /' &
          # tcpdump -qltnni veth1 ip |sed 's/^/1: /' &
          # ping -qc1 192.168.0.2
          1: IP 192.168.0.1 > 192.168.0.2: ICMP echo request, id 315, seq 1, length 64
          1: IP 192.168.0.2 > 192.168.0.1: ICMP echo reply, id 315, seq 1, length 64
          # ping -qc1 192.168.0.2
          1: IP 192.168.0.1 > 192.168.0.2: ICMP echo request, id 316, seq 1, length 64
          1: IP 192.168.0.2 > 192.168.0.1: ICMP echo reply, id 316, seq 1, length 64
          # ping -qc1 192.168.0.2
          1: IP 192.168.0.1 > 192.168.0.2: ICMP echo request, id 317, seq 1, length 64
          1: IP 192.168.0.2 > 192.168.0.1: ICMP echo reply, id 317, seq 1, length 64
      
      But some ICMP packets have an Identifier field which is
      used to match packets within sessions, let's use this value in the hash
      function to balance these packets between bond slaves:
      
          # ping -qc1 192.168.0.2
          0: IP 192.168.0.1 > 192.168.0.2: ICMP echo request, id 303, seq 1, length 64
          0: IP 192.168.0.2 > 192.168.0.1: ICMP echo reply, id 303, seq 1, length 64
          # ping -qc1 192.168.0.2
          1: IP 192.168.0.1 > 192.168.0.2: ICMP echo request, id 304, seq 1, length 64
          1: IP 192.168.0.2 > 192.168.0.1: ICMP echo reply, id 304, seq 1, length 64
      
      Aso, let's use a flow_dissector_key which defines FLOW_DISSECTOR_KEY_ICMP,
      so we can balance pings encapsulated in a tunnel when using mode encap3+4:
      
          # ping -q 192.168.1.2 -c1
          0: IP 192.168.0.1 > 192.168.0.2: GREv0, length 102: IP 192.168.1.1 > 192.168.1.2: ICMP echo request, id 585, seq 1, length 64
          0: IP 192.168.0.2 > 192.168.0.1: GREv0, length 102: IP 192.168.1.2 > 192.168.1.1: ICMP echo reply, id 585, seq 1, length 64
          # ping -q 192.168.1.2 -c1
          1: IP 192.168.0.1 > 192.168.0.2: GREv0, length 102: IP 192.168.1.1 > 192.168.1.2: ICMP echo request, id 586, seq 1, length 64
          1: IP 192.168.0.2 > 192.168.0.1: GREv0, length 102: IP 192.168.1.2 > 192.168.1.1: ICMP echo reply, id 586, seq 1, length 64
      Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58deb77c
    • Matteo Croce's avatar
      flow_dissector: extract more ICMP information · 5dec597e
      Matteo Croce authored
      The ICMP flow dissector currently parses only the Type and Code fields.
      Some ICMP packets (echo, timestamp) have a 16 bit Identifier field which
      is used to correlate packets.
      Add such field in flow_dissector_key_icmp and replace skb_flow_get_be16()
      with a more complex function which populate this field.
      Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5dec597e
    • Matteo Croce's avatar
      flow_dissector: skip the ICMP dissector for non ICMP packets · 3b336d6f
      Matteo Croce authored
      FLOW_DISSECTOR_KEY_ICMP is checked for every packet, not only ICMP ones.
      Even if the test overhead is probably negligible, move the
      ICMP dissector code under the big 'switch(ip_proto)' so it gets called
      only for ICMP packets.
      Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3b336d6f
    • Matteo Croce's avatar
      flow_dissector: add meaningful comments · 98298e6c
      Matteo Croce authored
      Documents two piece of code which can't be understood at a glance.
      Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      98298e6c
  2. 30 Oct, 2019 33 commits