Skip to content
  • Henrik Bjoernlund's avatar
    2be665c3
    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
    bridge: cfm: Netlink SET configuration Interface.
    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>
Loading