Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
0002 
0003 #ifndef _UAPI_LINUX_CFM_BRIDGE_H_
0004 #define _UAPI_LINUX_CFM_BRIDGE_H_
0005 
0006 #include <linux/types.h>
0007 #include <linux/if_ether.h>
0008 
0009 #define ETHER_HEADER_LENGTH     (6+6+4+2)
0010 #define CFM_MAID_LENGTH         48
0011 #define CFM_CCM_PDU_LENGTH      75
0012 #define CFM_PORT_STATUS_TLV_LENGTH  4
0013 #define CFM_IF_STATUS_TLV_LENGTH    4
0014 #define CFM_IF_STATUS_TLV_TYPE      4
0015 #define CFM_PORT_STATUS_TLV_TYPE    2
0016 #define CFM_ENDE_TLV_TYPE       0
0017 #define CFM_CCM_MAX_FRAME_LENGTH    (ETHER_HEADER_LENGTH+\
0018                      CFM_CCM_PDU_LENGTH+\
0019                      CFM_PORT_STATUS_TLV_LENGTH+\
0020                      CFM_IF_STATUS_TLV_LENGTH)
0021 #define CFM_FRAME_PRIO          7
0022 #define CFM_CCM_TLV_OFFSET      70
0023 #define CFM_CCM_PDU_MAID_OFFSET     10
0024 #define CFM_CCM_PDU_MEPID_OFFSET    8
0025 #define CFM_CCM_PDU_SEQNR_OFFSET    4
0026 #define CFM_CCM_PDU_TLV_OFFSET      74
0027 #define CFM_CCM_ITU_RESERVED_SIZE   16
0028 
0029 struct br_cfm_common_hdr {
0030     __u8 mdlevel_version;
0031     __u8 opcode;
0032     __u8 flags;
0033     __u8 tlv_offset;
0034 };
0035 
0036 enum br_cfm_opcodes {
0037     BR_CFM_OPCODE_CCM = 0x1,
0038 };
0039 
0040 /* MEP domain */
0041 enum br_cfm_domain {
0042     BR_CFM_PORT,
0043     BR_CFM_VLAN,
0044 };
0045 
0046 /* MEP direction */
0047 enum br_cfm_mep_direction {
0048     BR_CFM_MEP_DIRECTION_DOWN,
0049     BR_CFM_MEP_DIRECTION_UP,
0050 };
0051 
0052 /* CCM interval supported. */
0053 enum br_cfm_ccm_interval {
0054     BR_CFM_CCM_INTERVAL_NONE,
0055     BR_CFM_CCM_INTERVAL_3_3_MS,
0056     BR_CFM_CCM_INTERVAL_10_MS,
0057     BR_CFM_CCM_INTERVAL_100_MS,
0058     BR_CFM_CCM_INTERVAL_1_SEC,
0059     BR_CFM_CCM_INTERVAL_10_SEC,
0060     BR_CFM_CCM_INTERVAL_1_MIN,
0061     BR_CFM_CCM_INTERVAL_10_MIN,
0062 };
0063 
0064 #endif