xref: /linux/drivers/net/dsa/realtek/rtl8365mb_l2.h (revision 336e3e4a1ab37b6826fae27e53cd2ac43c9a96ca)
1*336e3e4aSAlvin Šipraga /* SPDX-License-Identifier: GPL-2.0 */
2*336e3e4aSAlvin Šipraga /* Forwarding and multicast database interface for the rtl8365mb switch family
3*336e3e4aSAlvin Šipraga  *
4*336e3e4aSAlvin Šipraga  * Copyright (C) 2022 Alvin Šipraga <alsi@bang-olufsen.dk>
5*336e3e4aSAlvin Šipraga  */
6*336e3e4aSAlvin Šipraga 
7*336e3e4aSAlvin Šipraga #ifndef _REALTEK_RTL8365MB_L2_H
8*336e3e4aSAlvin Šipraga #define _REALTEK_RTL8365MB_L2_H
9*336e3e4aSAlvin Šipraga 
10*336e3e4aSAlvin Šipraga #include <linux/if_ether.h>
11*336e3e4aSAlvin Šipraga #include <linux/types.h>
12*336e3e4aSAlvin Šipraga 
13*336e3e4aSAlvin Šipraga #include "realtek.h"
14*336e3e4aSAlvin Šipraga 
15*336e3e4aSAlvin Šipraga int rtl8365mb_l2_get_next_uc(struct realtek_priv *priv, u16 *addr, int port,
16*336e3e4aSAlvin Šipraga 			     struct realtek_fdb_entry *entry);
17*336e3e4aSAlvin Šipraga int rtl8365mb_l2_add_uc(struct realtek_priv *priv, int port,
18*336e3e4aSAlvin Šipraga 			const unsigned char addr[static ETH_ALEN],
19*336e3e4aSAlvin Šipraga 			u16 efid, u16 vid);
20*336e3e4aSAlvin Šipraga int rtl8365mb_l2_del_uc(struct realtek_priv *priv, int port,
21*336e3e4aSAlvin Šipraga 			const unsigned char addr[static ETH_ALEN],
22*336e3e4aSAlvin Šipraga 			u16 efid, u16 vid);
23*336e3e4aSAlvin Šipraga int rtl8365mb_l2_flush(struct realtek_priv *priv, int port, u16 vid);
24*336e3e4aSAlvin Šipraga 
25*336e3e4aSAlvin Šipraga int rtl8365mb_l2_add_mc(struct realtek_priv *priv, int port,
26*336e3e4aSAlvin Šipraga 			const unsigned char mac_addr[static ETH_ALEN],
27*336e3e4aSAlvin Šipraga 			u16 vid);
28*336e3e4aSAlvin Šipraga int rtl8365mb_l2_del_mc(struct realtek_priv *priv, int port,
29*336e3e4aSAlvin Šipraga 			const unsigned char mac_addr[static ETH_ALEN],
30*336e3e4aSAlvin Šipraga 			u16 vid);
31*336e3e4aSAlvin Šipraga 
32*336e3e4aSAlvin Šipraga #endif /* _REALTEK_RTL8365MB_L2_H */
33