11#ifndef ZEPHYR_INCLUDE_NET_DSA_H_
12#define ZEPHYR_INCLUDE_NET_DSA_H_
26#define NET_DSA_PORT_MAX_COUNT 8
27#define DSA_STATUS_PERIOD_MS K_MSEC(1000)
33#if defined(CONFIG_DSA_KSZ8794) && defined(CONFIG_DSA_KSZ_TAIL_TAGGING)
131 struct net_if *iface_slave[NET_DSA_PORT_MAX_COUNT];
134 struct net_if *iface_master;
137 struct dsa_api *dapi;
146 bool link_up[NET_DSA_PORT_MAX_COUNT];
174 int (*switch_set_mac_table_entry)(
const struct device *dev,
181 int (*switch_get_mac_table_entry)(
const struct device *dev,
struct net_if * dsa_net_recv(struct net_if *iface, struct net_pkt **pkt)
Set DSA interface to packet.
bool dsa_is_port_master(struct net_if *iface)
DSA helper function to check if port is master.
int dsa_switch_read(struct net_if *iface, uint16_t reg_addr, uint8_t *value)
Read from DSA switch register.
int dsa_switch_get_mac_table_entry(struct net_if *iface, uint8_t *buf, uint16_t tbl_entry_idx)
Read static MAC table entry.
int dsa_tx(const struct device *dev, struct net_pkt *pkt)
DSA generic transmit function.
int dsa_register_master_tx(struct net_if *iface, dsa_send_t fn)
DSA helper function to register transmit function for master.
enum net_verdict(* dsa_net_recv_cb_t)(struct net_if *iface, struct net_pkt *pkt)
DSA (MGMT) Receive packet callback.
Definition: dsa.h:72
struct net_if * dsa_get_slave_port(struct net_if *iface, int slave_num)
Get network interface of a slave port.
int dsa_switch_set_mac_table_entry(struct net_if *iface, const uint8_t *mac, uint8_t fw_port, uint16_t tbl_entry_idx, uint16_t flags)
Write static MAC table entry.
int dsa_switch_write(struct net_if *iface, uint16_t reg_addr, uint8_t value)
Write to DSA switch.
int(* dsa_send_t)(const struct device *dev, struct net_pkt *pkt)
Pointer to master interface send function.
Definition: dsa.h:98
int dsa_register_recv_callback(struct net_if *iface, dsa_net_recv_cb_t cb)
Register DSA Rx callback functions.
net_verdict
Net Verdict.
Definition: net_core.h:100
Public API for network interface.
flags
Definition: parser.h:96
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition: device.h:403
Structure to provide mac address for each LAN interface.
Definition: dsa.h:263
uint8_t mac_addr[6]
MAC address for each LAN{123.,} ports.
Definition: dsa.h:265
A structure used to submit work after a delay.
Definition: kernel.h:3908
Network Interface structure.
Definition: net_if.h:678
Network packet.
Definition: net_pkt.h:67
struct net_if * iface
Network interface.
Definition: net_pkt.h:90