0001
0002
0003
0004 #ifndef __PRESTERA_DSA_H_
0005 #define __PRESTERA_DSA_H_
0006
0007 #include <linux/types.h>
0008
0009 #define PRESTERA_DSA_HLEN 16
0010
0011 enum prestera_dsa_cmd {
0012
0013 PRESTERA_DSA_CMD_TO_CPU = 0,
0014
0015
0016 PRESTERA_DSA_CMD_FROM_CPU,
0017 };
0018
0019 struct prestera_dsa_vlan {
0020 u16 vid;
0021 u8 vpt;
0022 u8 cfi_bit;
0023 bool is_tagged;
0024 };
0025
0026 struct prestera_dsa {
0027 struct prestera_dsa_vlan vlan;
0028 u32 hw_dev_num;
0029 u32 port_num;
0030 u8 cpu_code;
0031 };
0032
0033 int prestera_dsa_parse(struct prestera_dsa *dsa, const u8 *dsa_buf);
0034 int prestera_dsa_build(const struct prestera_dsa *dsa, u8 *dsa_buf);
0035
0036 #endif