zephyr/subsys/net/ip
Yangbo Lu f0b1cb578f net: dsa: introduce new DSA framework
The new DSA framework purpose and changes are as below.

- Aligned to Linux DSA framework which has been already mature framework
  for many years, For now in zephyr, the DSA components were splited
  as: switch, port, master(not need driver file for now), slave, and tag.
  Seperated drivers were used for maintaining and developing new
  features.

- The unified dts bindings (aligned to linux) were supported. The port
  driver would parse DTS to decide the port type (master port, slave
  port, or cpu port) to set up the switch. All the ports registered as
  standard ethernet devices. (dsa port and dsa switch tree was not
  supported.)

- How to add DSA device driver based on the framework? All the device
  driver needing to do is providing dsa_spi implementation and private
  data, and calling below initialization.

    DSA_INIT_INSTANCE(n, _dapi, data)

- For switch tag case, recv/xmit helpers in dsa_api could be used for
  taging/untagging. No modified ethernet drivers.
  For no-tag type case, ethernet driver of master port should support
  packet injection/extraction for slave ports leaving NULL recv/xmit.

The dsa_nxp_imx_netc.c driver will be the first example of the new DSA
framework.

The future work for DSA will be supporting bridge for ports. We may align
Linux to give users two options to use DSA device:

- Standalone mode: the switch ports work as regular ethernet ports.

- Bridge mode: switch mode with virtual bridge device which could be
  assigned IP address.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-04-24 01:26:46 +02:00
..
6lo_private.h
6lo.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
6lo.h
canbus_socket.c net: connection: Split net_conn_input() 2025-04-23 11:48:33 +02:00
canbus_socket.h
CMakeLists.txt
connection.c net: connection: Cleanup packet input processing 2025-04-23 11:48:33 +02:00
connection.h net: connection: Split net_conn_input() 2025-04-23 11:48:33 +02:00
icmp.c net: icmp: Send replies with timeout K_NO_WAIT 2025-03-07 19:58:45 +01:00
icmpv4.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
icmpv4.h
icmpv6.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
icmpv6.h
igmp.c
igmp.h
ipv4_acd.c
ipv4_autoconf.c
ipv4_fragment.c net: Set the protocol type of fragmented packet 2025-01-21 19:29:55 +01:00
ipv4.c net: connection: Split net_conn_input() 2025-04-23 11:48:33 +02:00
ipv4.h net: ipv4: Add DiffServ DSCP code point definitions 2025-03-25 11:00:33 +01:00
ipv6_fragment.c net: Set the protocol type of fragmented packet 2025-01-21 19:29:55 +01:00
ipv6_mld.c
ipv6_nbr.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
ipv6_pe.c
ipv6.c net: connection: Split net_conn_input() 2025-04-23 11:48:33 +02:00
ipv6.h net: ipv6: use inclusive terminology in net_ipv6_pe_filter_cb_t 2025-02-19 18:48:15 +01:00
iterables_net_pkt_alloc_stats.ld
Kconfig net: shell: Add packet filter support 2025-04-16 08:07:34 +02:00
Kconfig.debug
Kconfig.ipv4 net: Add support for IPv4_MULTICAST_LOOP in net_context 2025-03-24 09:54:05 +01:00
Kconfig.ipv6 net: sockets: IPv6_MULTICAST_LOOP Support 2025-03-21 14:19:08 +01:00
Kconfig.mgmt
Kconfig.stack
Kconfig.stats net: pkt_filter: Add statistics support to packet filter 2025-04-16 08:07:34 +02:00
Kconfig.tcp
nbr.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
nbr.h net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
net_context.c net: sockets: packet: Ensure correct interface is used 2025-04-17 17:23:23 +02:00
net_core.c net: dsa: introduce new DSA framework 2025-04-24 01:26:46 +02:00
net_if.c net: pkt_filter: Add statistics support to packet filter 2025-04-16 08:07:34 +02:00
net_mgmt.c
net_pkt.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
net_private.h net: sockets: Add SOCK_RAW support for AF_INET/AF_INET6 sockets 2025-04-09 12:36:34 +02:00
net_stats.c
net_stats.h net: pkt_filter: Add statistics support to packet filter 2025-04-16 08:07:34 +02:00
net_tc_mapping.h
net_tc.c net: add try variant with timeout for various send functions 2025-03-07 19:58:45 +01:00
net_timeout.c
packet_socket.c net: dsa: make current DSA core driver obsolete 2025-04-24 01:26:46 +02:00
packet_socket.h net: core: Pass the actual LL proto for DGRAM packet sockets 2025-04-23 11:48:33 +02:00
pmtu.c
pmtu.h
promiscuous.c
route.c net: Change the net_linkaddr struct to not use pointers 2025-03-17 16:25:22 +01:00
route.h
tcp_internal.h
tcp_private.h net: tcp: fix ECONNREFUSED not reported by zsock_connect 2025-03-07 19:48:10 +01:00
tcp.c net: connection: Register connection type 2025-04-09 12:36:34 +02:00
tcp.h
tp_priv.h
tp.c
tp.h
udp_internal.h
udp.c net: connection: Register connection type 2025-04-09 12:36:34 +02:00
utils.c net: utils: Add helper to parse ip address string with a mask len 2025-03-20 17:16:10 +01:00