1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
2 | |
3 | #ifndef _UAPI_LINUX_CFM_BRIDGE_H_ |
4 | #define _UAPI_LINUX_CFM_BRIDGE_H_ |
5 | |
6 | #include <linux/types.h> |
7 | #include <linux/if_ether.h> |
8 | |
9 | #define (6+6+4+2) |
10 | #define CFM_MAID_LENGTH 48 |
11 | #define CFM_CCM_PDU_LENGTH 75 |
12 | #define CFM_PORT_STATUS_TLV_LENGTH 4 |
13 | #define CFM_IF_STATUS_TLV_LENGTH 4 |
14 | #define CFM_IF_STATUS_TLV_TYPE 4 |
15 | #define CFM_PORT_STATUS_TLV_TYPE 2 |
16 | #define CFM_ENDE_TLV_TYPE 0 |
17 | #define CFM_CCM_MAX_FRAME_LENGTH (ETHER_HEADER_LENGTH+\ |
18 | CFM_CCM_PDU_LENGTH+\ |
19 | CFM_PORT_STATUS_TLV_LENGTH+\ |
20 | CFM_IF_STATUS_TLV_LENGTH) |
21 | #define CFM_FRAME_PRIO 7 |
22 | #define CFM_CCM_TLV_OFFSET 70 |
23 | #define CFM_CCM_PDU_MAID_OFFSET 10 |
24 | #define CFM_CCM_PDU_MEPID_OFFSET 8 |
25 | #define CFM_CCM_PDU_SEQNR_OFFSET 4 |
26 | #define CFM_CCM_PDU_TLV_OFFSET 74 |
27 | #define CFM_CCM_ITU_RESERVED_SIZE 16 |
28 | |
29 | struct br_cfm_common_hdr { |
30 | __u8 mdlevel_version; |
31 | __u8 opcode; |
32 | __u8 flags; |
33 | __u8 tlv_offset; |
34 | }; |
35 | |
36 | enum br_cfm_opcodes { |
37 | BR_CFM_OPCODE_CCM = 0x1, |
38 | }; |
39 | |
40 | /* MEP domain */ |
41 | enum br_cfm_domain { |
42 | BR_CFM_PORT, |
43 | BR_CFM_VLAN, |
44 | }; |
45 | |
46 | /* MEP direction */ |
47 | enum br_cfm_mep_direction { |
48 | BR_CFM_MEP_DIRECTION_DOWN, |
49 | BR_CFM_MEP_DIRECTION_UP, |
50 | }; |
51 | |
52 | /* CCM interval supported. */ |
53 | enum br_cfm_ccm_interval { |
54 | BR_CFM_CCM_INTERVAL_NONE, |
55 | BR_CFM_CCM_INTERVAL_3_3_MS, |
56 | BR_CFM_CCM_INTERVAL_10_MS, |
57 | BR_CFM_CCM_INTERVAL_100_MS, |
58 | BR_CFM_CCM_INTERVAL_1_SEC, |
59 | BR_CFM_CCM_INTERVAL_10_SEC, |
60 | BR_CFM_CCM_INTERVAL_1_MIN, |
61 | BR_CFM_CCM_INTERVAL_10_MIN, |
62 | }; |
63 | |
64 | #endif |
65 | |