xref: /linux/include/uapi/linux/mrp_bridge.h (revision f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5)
14714d137SHoratiu Vultur /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
24714d137SHoratiu Vultur 
34714d137SHoratiu Vultur #ifndef _UAPI_LINUX_MRP_BRIDGE_H_
44714d137SHoratiu Vultur #define _UAPI_LINUX_MRP_BRIDGE_H_
54714d137SHoratiu Vultur 
64714d137SHoratiu Vultur #include <linux/types.h>
74714d137SHoratiu Vultur #include <linux/if_ether.h>
84714d137SHoratiu Vultur 
94714d137SHoratiu Vultur #define MRP_MAX_FRAME_LENGTH		200
104714d137SHoratiu Vultur #define MRP_DEFAULT_PRIO		0x8000
114714d137SHoratiu Vultur #define MRP_DOMAIN_UUID_LENGTH		16
124714d137SHoratiu Vultur #define MRP_VERSION			1
134714d137SHoratiu Vultur #define MRP_FRAME_PRIO			7
14c6676e7dSHoratiu Vultur #define MRP_OUI_LENGTH			3
15c6676e7dSHoratiu Vultur #define MRP_MANUFACTURE_DATA_LENGTH	2
164714d137SHoratiu Vultur 
174714d137SHoratiu Vultur enum br_mrp_ring_role_type {
184714d137SHoratiu Vultur 	BR_MRP_RING_ROLE_DISABLED,
194714d137SHoratiu Vultur 	BR_MRP_RING_ROLE_MRC,
204714d137SHoratiu Vultur 	BR_MRP_RING_ROLE_MRM,
21c6676e7dSHoratiu Vultur 	BR_MRP_RING_ROLE_MRA,
224714d137SHoratiu Vultur };
234714d137SHoratiu Vultur 
2428017583SHoratiu Vultur enum br_mrp_in_role_type {
2528017583SHoratiu Vultur 	BR_MRP_IN_ROLE_DISABLED,
2628017583SHoratiu Vultur 	BR_MRP_IN_ROLE_MIC,
2728017583SHoratiu Vultur 	BR_MRP_IN_ROLE_MIM,
2828017583SHoratiu Vultur };
2928017583SHoratiu Vultur 
304714d137SHoratiu Vultur enum br_mrp_ring_state_type {
314714d137SHoratiu Vultur 	BR_MRP_RING_STATE_OPEN,
324714d137SHoratiu Vultur 	BR_MRP_RING_STATE_CLOSED,
334714d137SHoratiu Vultur };
344714d137SHoratiu Vultur 
3528017583SHoratiu Vultur enum br_mrp_in_state_type {
3628017583SHoratiu Vultur 	BR_MRP_IN_STATE_OPEN,
3728017583SHoratiu Vultur 	BR_MRP_IN_STATE_CLOSED,
3828017583SHoratiu Vultur };
3928017583SHoratiu Vultur 
404714d137SHoratiu Vultur enum br_mrp_port_state_type {
414714d137SHoratiu Vultur 	BR_MRP_PORT_STATE_DISABLED,
424714d137SHoratiu Vultur 	BR_MRP_PORT_STATE_BLOCKED,
434714d137SHoratiu Vultur 	BR_MRP_PORT_STATE_FORWARDING,
444714d137SHoratiu Vultur 	BR_MRP_PORT_STATE_NOT_CONNECTED,
454714d137SHoratiu Vultur };
464714d137SHoratiu Vultur 
474714d137SHoratiu Vultur enum br_mrp_port_role_type {
484714d137SHoratiu Vultur 	BR_MRP_PORT_ROLE_PRIMARY,
494714d137SHoratiu Vultur 	BR_MRP_PORT_ROLE_SECONDARY,
5028017583SHoratiu Vultur 	BR_MRP_PORT_ROLE_INTER,
514714d137SHoratiu Vultur };
524714d137SHoratiu Vultur 
534714d137SHoratiu Vultur enum br_mrp_tlv_header_type {
544714d137SHoratiu Vultur 	BR_MRP_TLV_HEADER_END = 0x0,
554714d137SHoratiu Vultur 	BR_MRP_TLV_HEADER_COMMON = 0x1,
564714d137SHoratiu Vultur 	BR_MRP_TLV_HEADER_RING_TEST = 0x2,
574714d137SHoratiu Vultur 	BR_MRP_TLV_HEADER_RING_TOPO = 0x3,
584714d137SHoratiu Vultur 	BR_MRP_TLV_HEADER_RING_LINK_DOWN = 0x4,
594714d137SHoratiu Vultur 	BR_MRP_TLV_HEADER_RING_LINK_UP = 0x5,
6028017583SHoratiu Vultur 	BR_MRP_TLV_HEADER_IN_TEST = 0x6,
6128017583SHoratiu Vultur 	BR_MRP_TLV_HEADER_IN_TOPO = 0x7,
6228017583SHoratiu Vultur 	BR_MRP_TLV_HEADER_IN_LINK_DOWN = 0x8,
6328017583SHoratiu Vultur 	BR_MRP_TLV_HEADER_IN_LINK_UP = 0x9,
64*bfd04232SHoratiu Vultur 	BR_MRP_TLV_HEADER_IN_LINK_STATUS = 0xa,
65c6676e7dSHoratiu Vultur 	BR_MRP_TLV_HEADER_OPTION = 0x7f,
66c6676e7dSHoratiu Vultur };
67c6676e7dSHoratiu Vultur 
68c6676e7dSHoratiu Vultur enum br_mrp_sub_tlv_header_type {
69c6676e7dSHoratiu Vultur 	BR_MRP_SUB_TLV_HEADER_TEST_MGR_NACK = 0x1,
70c6676e7dSHoratiu Vultur 	BR_MRP_SUB_TLV_HEADER_TEST_PROPAGATE = 0x2,
71c6676e7dSHoratiu Vultur 	BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR = 0x3,
724714d137SHoratiu Vultur };
734714d137SHoratiu Vultur 
744714d137SHoratiu Vultur #endif
75