0001
0002
0003 #ifndef _UAPI_LINUX_MRP_BRIDGE_H_
0004 #define _UAPI_LINUX_MRP_BRIDGE_H_
0005
0006 #include <linux/types.h>
0007 #include <linux/if_ether.h>
0008
0009 #define MRP_MAX_FRAME_LENGTH 200
0010 #define MRP_DEFAULT_PRIO 0x8000
0011 #define MRP_DOMAIN_UUID_LENGTH 16
0012 #define MRP_VERSION 1
0013 #define MRP_FRAME_PRIO 7
0014 #define MRP_OUI_LENGTH 3
0015 #define MRP_MANUFACTURE_DATA_LENGTH 2
0016
0017 enum br_mrp_ring_role_type {
0018 BR_MRP_RING_ROLE_DISABLED,
0019 BR_MRP_RING_ROLE_MRC,
0020 BR_MRP_RING_ROLE_MRM,
0021 BR_MRP_RING_ROLE_MRA,
0022 };
0023
0024 enum br_mrp_in_role_type {
0025 BR_MRP_IN_ROLE_DISABLED,
0026 BR_MRP_IN_ROLE_MIC,
0027 BR_MRP_IN_ROLE_MIM,
0028 };
0029
0030 enum br_mrp_ring_state_type {
0031 BR_MRP_RING_STATE_OPEN,
0032 BR_MRP_RING_STATE_CLOSED,
0033 };
0034
0035 enum br_mrp_in_state_type {
0036 BR_MRP_IN_STATE_OPEN,
0037 BR_MRP_IN_STATE_CLOSED,
0038 };
0039
0040 enum br_mrp_port_state_type {
0041 BR_MRP_PORT_STATE_DISABLED,
0042 BR_MRP_PORT_STATE_BLOCKED,
0043 BR_MRP_PORT_STATE_FORWARDING,
0044 BR_MRP_PORT_STATE_NOT_CONNECTED,
0045 };
0046
0047 enum br_mrp_port_role_type {
0048 BR_MRP_PORT_ROLE_PRIMARY,
0049 BR_MRP_PORT_ROLE_SECONDARY,
0050 BR_MRP_PORT_ROLE_INTER,
0051 };
0052
0053 enum br_mrp_tlv_header_type {
0054 BR_MRP_TLV_HEADER_END = 0x0,
0055 BR_MRP_TLV_HEADER_COMMON = 0x1,
0056 BR_MRP_TLV_HEADER_RING_TEST = 0x2,
0057 BR_MRP_TLV_HEADER_RING_TOPO = 0x3,
0058 BR_MRP_TLV_HEADER_RING_LINK_DOWN = 0x4,
0059 BR_MRP_TLV_HEADER_RING_LINK_UP = 0x5,
0060 BR_MRP_TLV_HEADER_IN_TEST = 0x6,
0061 BR_MRP_TLV_HEADER_IN_TOPO = 0x7,
0062 BR_MRP_TLV_HEADER_IN_LINK_DOWN = 0x8,
0063 BR_MRP_TLV_HEADER_IN_LINK_UP = 0x9,
0064 BR_MRP_TLV_HEADER_IN_LINK_STATUS = 0xa,
0065 BR_MRP_TLV_HEADER_OPTION = 0x7f,
0066 };
0067
0068 enum br_mrp_sub_tlv_header_type {
0069 BR_MRP_SUB_TLV_HEADER_TEST_MGR_NACK = 0x1,
0070 BR_MRP_SUB_TLV_HEADER_TEST_PROPAGATE = 0x2,
0071 BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR = 0x3,
0072 };
0073
0074 #endif