1. 01 Jun, 2024 3 commits
  2. 31 May, 2024 33 commits
  3. 30 May, 2024 4 commits
    • Linus Torvalds's avatar
      Merge tag 'net-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · d8ec1985
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from bpf and netfilter.
      
        Current release - regressions:
      
         - gro: initialize network_offset in network layer
      
         - tcp: reduce accepted window in NEW_SYN_RECV state
      
        Current release - new code bugs:
      
         - eth: mlx5e: do not use ptp structure for tx ts stats when not
           initialized
      
         - eth: ice: check for unregistering correct number of devlink params
      
        Previous releases - regressions:
      
         - bpf: Allow delete from sockmap/sockhash only if update is allowed
      
         - sched: taprio: extend minimum interval restriction to entire cycle
           too
      
         - netfilter: ipset: add list flush to cancel_gc
      
         - ipv4: fix address dump when IPv4 is disabled on an interface
      
         - sock_map: avoid race between sock_map_close and sk_psock_put
      
         - eth: mlx5: use mlx5_ipsec_rx_status_destroy to correctly delete
           status rules
      
        Previous releases - always broken:
      
         - core: fix __dst_negative_advice() race
      
         - bpf:
             - fix multi-uprobe PID filtering logic
             - fix pkt_type override upon netkit pass verdict
      
         - netfilter: tproxy: bail out if IP has been disabled on the device
      
         - af_unix: annotate data-race around unix_sk(sk)->addr
      
         - eth: mlx5e: fix UDP GSO for encapsulated packets
      
         - eth: idpf: don't enable NAPI and interrupts prior to allocating Rx
           buffers
      
         - eth: i40e: fully suspend and resume IO operations in EEH case
      
         - eth: octeontx2-pf: free send queue buffers incase of leaf to inner
      
         - eth: ipvlan: dont Use skb->sk in ipvlan_process_v{4,6}_outbound"
      
      * tag 'net-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits)
        netdev: add qstat for csum complete
        ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound
        net: ena: Fix redundant device NUMA node override
        ice: check for unregistering correct number of devlink params
        ice: fix 200G PHY types to link speed mapping
        i40e: Fully suspend and resume IO operations in EEH case
        i40e: factoring out i40e_suspend/i40e_resume
        e1000e: move force SMBUS near the end of enable_ulp function
        net: dsa: microchip: fix RGMII error in KSZ DSA driver
        ipv4: correctly iterate over the target netns in inet_dump_ifaddr()
        net: fix __dst_negative_advice() race
        nfc/nci: Add the inconsistency check between the input data length and count
        MAINTAINERS: dwmac: starfive: update Maintainer
        net/sched: taprio: extend minimum interval restriction to entire cycle too
        net/sched: taprio: make q->picos_per_byte available to fill_sched_entry()
        netfilter: nft_fib: allow from forward/input without iif selector
        netfilter: tproxy: bail out if IP has been disabled on the device
        netfilter: nft_payload: skbuff vlan metadata mangle support
        net: ti: icssg-prueth: Fix start counter for ft1 filter
        sock_map: avoid race between sock_map_close and sk_psock_put
        ...
      d8ec1985
    • Paolo Abeni's avatar
      Merge branch 'introduce-switch-mode-support-for-icssg-driver' · 95cd03f3
      Paolo Abeni authored
      MD Danish Anwar says:
      
      ====================
      Introduce switch mode support for ICSSG driver
      
      This series adds support for switch-mode for ICSSG driver. This series
      also introduces helper APIs to configure firmware maintained FDB
      (Forwarding Database) and VLAN tables. These APIs are later used by ICSSG
      driver in switch mode.
      
      Now the driver will boot by default in dual EMAC mode. When first ICSSG
      interface is added to bridge driver will still be in EMAC mode. As soon as
      second ICSSG interface is added to same bridge, switch-mode will be
      enabled and switch firmwares will be loaded to PRU cores. The driver will
      remain in dual EMAC mode if ICSSG interfaces are added to two different
      bridges or if two different interfaces (One ICSSG, one other) is added to
      the same bridge. We'll only enable is_switch_mode flag when two ICSSG
      interfaces are added to same bridge.
      
      We start in dual MAC mode. Let's say lan0 and lan1 are ICSSG interfaces
      
      ip link add name br0 type bridge
      ip link set lan0 master br0
      
      At this point, we get a CHANGEUPPER event. Only one port is a member of
      the bridge, so we will still be in dual MAC mode.
      
      ip link set lan1 master br0
      
      We get a second CHANGEUPPER event, the second interface lan1 is also ICSSG
      interface so we will set the is_switch_mode flag and when interfaces are
      brought up again, ICSSG switch firmwares will be loaded to PRU Cores.
      
      There are some other cases to consider as well.
      
      ip link add name br0 type bridge
      ip link add name br1 type bridge
      
      ip link set lan0 master br0
      ip link set ppp0 master br0
      
      Here we are adding lan0 (ICSSG) and ppp0 (non ICSSG) to same bridge, as
      they both are not ICSSG, we will still be running in dual EMAC mode.
      
      ip link set lan1 master br1
      ip link set vpn0 master br1
      
      Here we are adding lan1 (ICSSG) and vpn0 (non ICSSG) to same bridge, as
      they both are not ICSSG, we will still be running in dual EMAC mode.
      
      This is v6 of the series.
      
      Changes from v5 to v6:
      *) Removed __packed from structures in icssg_config.h file.
      *) Added RB tags of Andrew Lunn <andrew@lunn.ch> to patch 2/3 and patch
         3/3 of this series.
      
      Changes from v4 to v5:
      *) Rebased on 6.10-rc1.
      *) Dropped the RFC tag.
      
      Changes from v3 to v4:
      *) Added RFC tag as net-next is closed now.
      *) Modified the driver to remove the need of bringing interfaces up / down
         for enabling / disabling switch mode. Now switch mode can be enabled
         without bringig interfaces up / down as requested by Andrew Lunn
         <andrew@lunn.ch>
      *) Modified commit message of patch 3/3.
      
      Changes from v2 to v3:
      *) Dropped RFC tag.
      *) Used ether_addr_copy() instead of manually copying mac address using
         for loop in patch 1/3 as suggested by Andrew Lunn <andrew@lunn.ch>
      *) Added helper API icssg_fdb_setup() in patch 1/3 to reduce code
         duplication as suggested by Andrew Lunn <andrew@lunn.ch>
      *) In prueth_switchdev_stp_state_set() removed BR_STATE_LEARNING as
         learning without forwarding is not supported by ICSSG firmware.
      *) Used ether_addr_equal() wherever possible in patch 2/3 as suggested
         by Andrew Lunn <andrew@lunn.ch>
      *) Fixed typo "nit: s/prueth_switchdevice_nb/prueth_switchdev_nb/" in
         patch 2/3 as suggested by Simon Horman <horms@kernel.org>
      *) Squashed "#include "icssg_mii_rt.h" to patch 2/3 from patch 3/3 as
         suggested by Simon Horman <horms@kernel.org>
      *) Rebased on latest net-next/main.
      
      Changes from v1 to v2:
      *) Removed TAPRIO support patch from this series.
      *) Stopped using devlink for enabling switch-mode as suggested by Andrew L
      *) Added read_poll_timeout() in patch 1 / 3 as suggested by Andrew L.
      
      v1 https://lore.kernel.org/all/20230830110847.1219515-4-danishanwar@ti.com/
      v2 https://lore.kernel.org/all/20240118071005.1514498-1-danishanwar@ti.com/
      v3 https://lore.kernel.org/all/20240327114054.1907278-1-danishanwar@ti.com/
      v4 https://lore.kernel.org/all/20240515060320.2783244-1-danishanwar@ti.com/
      v5 https://lore.kernel.org/all/20240527052738.152821-1-danishanwar@ti.com/
      
      Thanks and Regards,
      Md Danish Anwar
      ====================
      
      Link: https://lore.kernel.org/r/20240528113734.379422-1-danishanwar@ti.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      95cd03f3
    • MD Danish Anwar's avatar
      net: ti: icssg-prueth: Add support for ICSSG switch firmware · abd5576b
      MD Danish Anwar authored
      Add support for ICSSG switch firmware using existing Dual EMAC driver
      with switchdev.
      
      Limitations:
      VLAN offloading is limited to 0-256 IDs.
      MDB/FDB static entries are limited to 511 entries and different FDBs can
      hash to same bucket and thus may not completely offloaded
      
      Example assuming ETH1 and ETH2 as ICSSG2 interfaces:
      
      Switch to ICSSG Switch mode:
       ip link add name br0 type bridge
       ip link set dev eth1 master br0
       ip link set dev eth2 master br0
       ip link set dev br0 up
       bridge vlan add dev br0 vid 1 pvid untagged self
      
      Going back to Dual EMAC mode:
      
       ip link set dev br0 down
       ip link set dev eth1 nomaster
       ip link set dev eth2 nomaster
       ip link del name br0 type bridge
      
      By default, Dual EMAC firmware is loaded, and can be changed to switch
      mode by above steps
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarMD Danish Anwar <danishanwar@ti.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      abd5576b
    • MD Danish Anwar's avatar
      net: ti: icssg-switch: Add switchdev based driver for ethernet switch support · 972383ae
      MD Danish Anwar authored
      ICSSG can operating in switch mode with 2 ext port and 1 host port with
      VLAN/FDB/MDB and STP offloading. Add switchdev based driver to
      support the same.
      
      Driver itself will be integrated with icssg_prueth in future commits
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarMD Danish Anwar <danishanwar@ti.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      972383ae