• Henrik Bjoernlund's avatar
    bridge: cfm: Netlink GET configuration Interface. · 5e312fc0
    Henrik Bjoernlund authored
    This is the implementation of CFM netlink configuration
    get information interface.
    
    Add new nested netlink attributes. These attributes are used by the
    user space to get configuration information.
    
    GETLINK:
        Request filter RTEXT_FILTER_CFM_CONFIG:
        Indicating that CFM configuration information must be delivered.
    
        IFLA_BRIDGE_CFM:
            Points to the CFM information.
    
        IFLA_BRIDGE_CFM_MEP_CREATE_INFO:
            This indicate that MEP instance create parameters are following.
        IFLA_BRIDGE_CFM_MEP_CONFIG_INFO:
            This indicate that MEP instance config parameters are following.
        IFLA_BRIDGE_CFM_CC_CONFIG_INFO:
            This indicate that MEP instance CC functionality
            parameters are following.
        IFLA_BRIDGE_CFM_CC_RDI_INFO:
            This indicate that CC transmitted CCM PDU RDI
            parameters are following.
        IFLA_BRIDGE_CFM_CC_CCM_TX_INFO:
            This indicate that CC transmitted CCM PDU parameters are
            following.
        IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO:
            This indicate that the added peer MEP IDs are following.
    
    CFM nested attribute has the following attributes in next level.
    
    GETLINK RTEXT_FILTER_CFM_CONFIG:
        IFLA_BRIDGE_CFM_MEP_CREATE_INSTANCE:
            The created MEP instance number.
            The type is u32.
        IFLA_BRIDGE_CFM_MEP_CREATE_DOMAIN:
            The created MEP domain.
            The type is u32 (br_cfm_domain).
            It must be BR_CFM_PORT.
            This means that CFM frames are transmitted and received
            directly on the port - untagged. Not in a VLAN.
        IFLA_BRIDGE_CFM_MEP_CREATE_DIRECTION:
            The created MEP direction.
            The type is u32 (br_cfm_mep_direction).
            It must be BR_CFM_MEP_DIRECTION_DOWN.
            This means that CFM frames are transmitted and received on
            the port. Not in the bridge.
        IFLA_BRIDGE_CFM_MEP_CREATE_IFINDEX:
            The created MEP residence port ifindex.
            The type is u32 (ifindex).
    
        IFLA_BRIDGE_CFM_MEP_DELETE_INSTANCE:
            The deleted MEP instance number.
            The type is u32.
    
        IFLA_BRIDGE_CFM_MEP_CONFIG_INSTANCE:
            The configured MEP instance number.
            The type is u32.
        IFLA_BRIDGE_CFM_MEP_CONFIG_UNICAST_MAC:
            The configured MEP unicast MAC address.
            The type is 6*u8 (array).
            This is used as SMAC in all transmitted CFM frames.
        IFLA_BRIDGE_CFM_MEP_CONFIG_MDLEVEL:
            The configured MEP unicast MD level.
            The type is u32.
            It must be in the range 1-7.
            No CFM frames are passing through this MEP on lower levels.
        IFLA_BRIDGE_CFM_MEP_CONFIG_MEPID:
            The configured MEP ID.
            The type is u32.
            It must be in the range 0-0x1FFF.
            This MEP ID is inserted in any transmitted CCM frame.
    
        IFLA_BRIDGE_CFM_CC_CONFIG_INSTANCE:
            The configured MEP instance number.
            The type is u32.
        IFLA_BRIDGE_CFM_CC_CONFIG_ENABLE:
            The Continuity Check (CC) functionality is enabled or disabled.
            The type is u32 (bool).
        IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL:
            The CC expected receive interval of CCM frames.
            The type is u32 (br_cfm_ccm_interval).
            This is also the transmission interval of CCM frames when enabled.
        IFLA_BRIDGE_CFM_CC_CONFIG_EXP_MAID:
            The CC expected receive MAID in CCM frames.
            The type is CFM_MAID_LENGTH*u8.
            This is MAID is also inserted in transmitted CCM frames.
    
        IFLA_BRIDGE_CFM_CC_PEER_MEP_INSTANCE:
            The configured MEP instance number.
            The type is u32.
        IFLA_BRIDGE_CFM_CC_PEER_MEPID:
            The CC Peer MEP ID added.
            The type is u32.
            When a Peer MEP ID is added and CC is enabled it is expected to
            receive CCM frames from that Peer MEP.
    
        IFLA_BRIDGE_CFM_CC_RDI_INSTANCE:
            The configured MEP instance number.
            The type is u32.
        IFLA_BRIDGE_CFM_CC_RDI_RDI:
            The RDI that is inserted in transmitted CCM PDU.
            The type is u32 (bool).
    
        IFLA_BRIDGE_CFM_CC_CCM_TX_INSTANCE:
            The configured MEP instance number.
            The type is u32.
        IFLA_BRIDGE_CFM_CC_CCM_TX_DMAC:
            The transmitted CCM frame destination MAC address.
            The type is 6*u8 (array).
            This is used as DMAC in all transmitted CFM frames.
        IFLA_BRIDGE_CFM_CC_CCM_TX_SEQ_NO_UPDATE:
            The transmitted CCM frame update (increment) of sequence
            number is enabled or disabled.
            The type is u32 (bool).
        IFLA_BRIDGE_CFM_CC_CCM_TX_PERIOD:
            The period of time where CCM frame are transmitted.
            The type is u32.
            The time is given in seconds. SETLINK IFLA_BRIDGE_CFM_CC_CCM_TX
            must be done before timeout to keep transmission alive.
            When period is zero any ongoing CCM frame transmission
            will be stopped.
        IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV:
            The transmitted CCM frame update with Interface Status TLV
            is enabled or disabled.
            The type is u32 (bool).
        IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV_VALUE:
            The transmitted Interface Status TLV value field.
            The type is u8.
        IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV:
            The transmitted CCM frame update with Port Status TLV is enabled
            or disabled.
            The type is u32 (bool).
        IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV_VALUE:
            The transmitted Port Status TLV value field.
            The type is u8.
    Signed-off-by: default avatarHenrik Bjoernlund  <henrik.bjoernlund@microchip.com>
    Reviewed-by: default avatarHoratiu Vultur  <horatiu.vultur@microchip.com>
    Acked-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    5e312fc0
br_private.h 44.3 KB