cfm_bridge.h (1466B)
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 ETHER_HEADER_LENGTH (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 29struct br_cfm_common_hdr { 30 __u8 mdlevel_version; 31 __u8 opcode; 32 __u8 flags; 33 __u8 tlv_offset; 34}; 35 36enum br_cfm_opcodes { 37 BR_CFM_OPCODE_CCM = 0x1, 38}; 39 40/* MEP domain */ 41enum br_cfm_domain { 42 BR_CFM_PORT, 43 BR_CFM_VLAN, 44}; 45 46/* MEP direction */ 47enum br_cfm_mep_direction { 48 BR_CFM_MEP_DIRECTION_DOWN, 49 BR_CFM_MEP_DIRECTION_UP, 50}; 51 52/* CCM interval supported. */ 53enum 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