zephyr/include/zephyr
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
..
acpi
app_memory kernel: typedef k_mem_domain_t and _mem_domain_info_t 2025-04-17 00:57:19 +02:00
arch doc: doxygen: add @brief to few APIs 2025-04-18 17:46:50 +02:00
audio usb: device_next: add new MIDI 2.0 device class 2025-01-31 19:50:26 +01:00
bluetooth Bluetooth: GATT: Clarify start and end handles 2025-04-23 15:07:27 +02:00
canbus lib: net_buf: rename header file from zephyr/net/buf.h to zephyr/net_buf.h 2024-09-07 11:19:05 -05:00
console
crypto everywhere: replace double words 2024-06-22 05:40:22 -04:00
data json: improve parsing and serializing of integers 2025-04-11 06:32:50 +02:00
debug doc: doxygen: group debugging APIs 2025-04-18 17:46:50 +02:00
devicetree include: devicetree: Add port and endpoint macro header 2024-12-06 22:23:31 +01:00
dfu dfu: Add support for new MCUboot swap using offset mode 2025-02-10 19:05:25 +01:00
display cfb: typo fixes 2025-04-02 10:30:50 +02:00
drivers drivers: pinctrl: bouffalolab: Add bflb pinctrl driver 2025-04-24 01:26:37 +02:00
dsp dsp: utils: Implemented float/fixed type conversions 2024-12-17 20:55:27 +01:00
dt-bindings drivers: mipi_dbi: Add defines for color coding 2025-04-23 10:03:42 +02:00
fs fs: zms: clarify need to re-mount after zms_clear 2025-03-31 14:32:08 +02:00
input drivers: input: cy8cmbr3xxx: add support for cy8cmbr3xxx input driver 2025-01-28 14:13:08 +01:00
internal toolchain: Replace TOOLCHAIN_IGNORE_WSHADOW_BEGIN/END 2025-03-20 21:57:47 +01:00
ipc ipc_service: icmsg: Add "unbound" functionality 2025-02-14 13:34:49 +01:00
kernel kernel: typedef k_mem_domain_t and _mem_domain_info_t 2025-04-17 00:57:19 +02:00
linker drivers: memc: stm32 xspi: add psram linker section 2025-04-22 09:59:34 +02:00
llext llext: optimize allocations for read-only sections 2025-03-21 14:41:30 -04:00
logging logging: Assign module data to memory partition 'k_log_partition' 2025-04-23 02:15:25 +02:00
lorawan lorawan: add link check support. 2025-04-17 17:23:12 +02:00
math math: interpolation: linear interpolation 2024-08-29 16:12:36 -04:00
mem_mgmt
mgmt include: zephyr: mgmt: mcumgr: callbacks: Remove deprecated macro 2025-02-25 15:13:42 +00:00
misc misc: move lorem ipsum text to zephyr/misc/lorem_ipsum.h 2024-08-02 03:31:06 -04:00
modbus
modem modem: pipe: Add explicit timeout to sync APIs 2024-07-29 14:14:42 +02:00
multi_heap soc: espressif: psram as shared multi heap 2024-08-27 18:37:47 -04:00
net net: dsa: introduce new DSA framework 2025-04-24 01:26:46 +02:00
platform init: fix soc and board hooks doxygen comments 2024-11-21 11:02:07 +00:00
pm pm: Add option to quickly detect power state availability 2025-04-21 07:45:07 +02:00
pmci/mctp pmci: Move MCTP into the PMCI subsys 2025-04-21 12:43:33 +02:00
portability portability: cmsis: Avoid copying objects names into control block 2025-04-14 20:03:19 +02:00
posix toolchain: Replace TOOLCHAIN_IGNORE_WSHADOW_BEGIN/END 2025-03-20 21:57:47 +01:00
psa secure_storage: add a global registry header file for PSA key IDs 2025-02-13 20:22:09 +01:00
random random: remove deprecated rand32.h 2024-11-13 19:08:11 -08:00
retention retention: Fix documentation issue 2024-07-25 09:25:21 +02:00
rtio rtio: Correctly handle completion count wraps 2025-02-12 12:23:06 +01:00
sd sd: sd_spec: update trailing doxygen comments 2024-07-17 16:19:07 -04:00
sensing
settings settings: introduce priority for commit 2024-10-24 22:04:07 +01:00
shell net: http_server: allow specifying a fallback resource 2025-01-28 18:14:36 +01:00
sip_svc
stats
storage storage: flash_map: add flash_area_copy() 2025-04-14 16:07:35 +02:00
sys doc: doxygen: move usermode mutex/sem under usermode group 2025-04-18 17:46:50 +02:00
task_wdt task_wdt: Add suspend and resume API functions 2025-04-02 13:05:14 +02:00
timing
toolchain tests: mgmt: mcumgr: Disable clang warning 2025-04-03 21:06:02 +02:00
tracing kernel: kheap: decouple simple alloc from aligned_alloc 2025-04-01 22:13:04 +02:00
usb usb: device_next: Reduce code size on Full-Speed only configuration 2025-04-10 12:57:19 +02:00
usb_c usbc: add definitions for TCPCI registers and fields 2024-09-23 10:03:19 +02:00
xen include: xen: add gnttab_query_size struct to public headers 2025-02-14 10:41:33 +01:00
zbus zbus: remove k_malloc dependency for ZBUS_RUNTIME_OBSERVERS 2025-04-14 20:03:09 +02:00
zvfs posix: eventfd: fix dependency cycle between net and posix 2024-06-04 16:27:12 -05:00
bindesc.h bindesc.h: Include missing device.h 2024-10-14 13:01:23 +02:00
cache.h everywhere: replace double words 2024-06-22 05:40:22 -04:00
device.h device: fix typo in device_deinit 2025-03-26 07:09:00 +01:00
devicetree.h devicetree: document limitations related to for-each macros 2025-02-01 00:26:38 +01:00
fatal.h kernel: Add missing @brief for z_fatal_error 2024-06-20 17:02:45 -04:00
fatal_types.h
init.h linker: update section names to be unambiguous 2025-03-20 12:20:55 -04:00
irq.h irq: doc: fix misspelled reference to k_spinlock 2024-06-07 15:05:56 +02:00
irq_multilevel.h irq: multilevel: compile 3rd level IRQ APIs only when enabled 2025-02-19 14:49:27 +00:00
irq_nextlevel.h
irq_offload.h
kernel.h doc: doxygen: add @brief to few APIs 2025-04-18 17:46:50 +02:00
kernel_includes.h
kernel_structs.h kernel_structs: Add macro CPU_ID for getting current CPU ID 2025-04-08 08:57:57 +02:00
kernel_version.h doc: doxygen: add @brief to few APIs 2025-04-18 17:46:50 +02:00
net_buf.h lib: net_buf: remove deprecated net_buf_put() and net_buf_get() functions 2025-03-12 19:04:19 +01:00
shared_irq.h
smf.h Lib: SMF Modify HSM operation for UML-Style transitions 2024-05-22 21:41:06 -04:00
spinlock.h include: zephyr: coding guidelines: add explicit cast to void 2024-06-07 16:46:32 +03:00
sw_isr_table.h sw_isr_table: Force align _isr_list_sname instances 2025-02-11 00:43:55 +01:00
sys_clock.h kernel: Add Z_IS_TIMEOUT_RELATIVE() macro 2025-03-17 02:21:02 +01:00
syscall.h build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
toolchain.h toolchain: Add IAR warning macros 2025-03-25 22:15:32 +01:00
types.h misc: Restrict linkage for main to freestanding 2025-04-03 15:26:23 -07:00