Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
0002 /* Copyright (c) 2020 Marvell International Ltd. All rights reserved. */
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     /* DSA command is "To CPU" */
0013     PRESTERA_DSA_CMD_TO_CPU = 0,
0014 
0015     /* DSA command is "From CPU" */
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 /* _PRESTERA_DSA_H_ */