• Henrik Bjoernlund's avatar
    bridge: cfm: Netlink SET configuration Interface. · 2be665c3
    Henrik Bjoernlund authored
    This is the implementation of CFM netlink configuration
    set information interface.
    
    Add new nested netlink attributes. These attributes are used by the
    user space to create/delete/configure CFM instances.
    
    SETLINK:
        IFLA_BRIDGE_CFM:
            Indicate that the following attributes are CFM.
    
        IFLA_BRIDGE_CFM_MEP_CREATE:
            This indicate that a MEP instance must be created.
        IFLA_BRIDGE_CFM_MEP_DELETE:
            This indicate that a MEP instance must be deleted.
        IFLA_BRIDGE_CFM_MEP_CONFIG:
            This indicate that a MEP instance must be configured.
        IFLA_BRIDGE_CFM_CC_CONFIG:
            This indicate that a MEP instance Continuity Check (CC)
            functionality must be configured.
        IFLA_BRIDGE_CFM_CC_PEER_MEP_ADD:
            This indicate that a CC Peer MEP must be added.
        IFLA_BRIDGE_CFM_CC_PEER_MEP_REMOVE:
            This indicate that a CC Peer MEP must be removed.
        IFLA_BRIDGE_CFM_CC_CCM_TX:
            This indicate that the CC transmitted CCM PDU must be configured.
        IFLA_BRIDGE_CFM_CC_RDI:
            This indicate that the CC transmitted CCM PDU RDI must be
            configured.
    
    CFM nested attribute has the following attributes in next level.
    
    SETLINK 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>
    2be665c3
br_cfm.c 19.4 KB