bridge: cfm: Netlink SET configuration Interface.
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: Henrik Bjoernlund <henrik.bjoernlund@microchip.com>
Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
dc32cbb3db
commit
2be665c394
@@ -121,6 +121,7 @@ enum {
|
||||
IFLA_BRIDGE_VLAN_INFO,
|
||||
IFLA_BRIDGE_VLAN_TUNNEL_INFO,
|
||||
IFLA_BRIDGE_MRP,
|
||||
IFLA_BRIDGE_CFM,
|
||||
__IFLA_BRIDGE_MAX,
|
||||
};
|
||||
#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
|
||||
@@ -328,6 +329,95 @@ struct br_mrp_start_in_test {
|
||||
__u16 in_id;
|
||||
};
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_MEP_CREATE,
|
||||
IFLA_BRIDGE_CFM_MEP_DELETE,
|
||||
IFLA_BRIDGE_CFM_MEP_CONFIG,
|
||||
IFLA_BRIDGE_CFM_CC_CONFIG,
|
||||
IFLA_BRIDGE_CFM_CC_PEER_MEP_ADD,
|
||||
IFLA_BRIDGE_CFM_CC_PEER_MEP_REMOVE,
|
||||
IFLA_BRIDGE_CFM_CC_RDI,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX,
|
||||
__IFLA_BRIDGE_CFM_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_MAX (__IFLA_BRIDGE_CFM_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_MEP_CREATE_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_MEP_CREATE_INSTANCE,
|
||||
IFLA_BRIDGE_CFM_MEP_CREATE_DOMAIN,
|
||||
IFLA_BRIDGE_CFM_MEP_CREATE_DIRECTION,
|
||||
IFLA_BRIDGE_CFM_MEP_CREATE_IFINDEX,
|
||||
__IFLA_BRIDGE_CFM_MEP_CREATE_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_MEP_CREATE_MAX (__IFLA_BRIDGE_CFM_MEP_CREATE_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_MEP_DELETE_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_MEP_DELETE_INSTANCE,
|
||||
__IFLA_BRIDGE_CFM_MEP_DELETE_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_MEP_DELETE_MAX (__IFLA_BRIDGE_CFM_MEP_DELETE_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_MEP_CONFIG_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_MEP_CONFIG_INSTANCE,
|
||||
IFLA_BRIDGE_CFM_MEP_CONFIG_UNICAST_MAC,
|
||||
IFLA_BRIDGE_CFM_MEP_CONFIG_MDLEVEL,
|
||||
IFLA_BRIDGE_CFM_MEP_CONFIG_MEPID,
|
||||
__IFLA_BRIDGE_CFM_MEP_CONFIG_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_MEP_CONFIG_MAX (__IFLA_BRIDGE_CFM_MEP_CONFIG_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_CC_CONFIG_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_CC_CONFIG_INSTANCE,
|
||||
IFLA_BRIDGE_CFM_CC_CONFIG_ENABLE,
|
||||
IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL,
|
||||
IFLA_BRIDGE_CFM_CC_CONFIG_EXP_MAID,
|
||||
__IFLA_BRIDGE_CFM_CC_CONFIG_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_CC_CONFIG_MAX (__IFLA_BRIDGE_CFM_CC_CONFIG_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_CC_PEER_MEP_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_CC_PEER_MEP_INSTANCE,
|
||||
IFLA_BRIDGE_CFM_CC_PEER_MEPID,
|
||||
__IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX (__IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_CC_RDI_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_CC_RDI_INSTANCE,
|
||||
IFLA_BRIDGE_CFM_CC_RDI_RDI,
|
||||
__IFLA_BRIDGE_CFM_CC_RDI_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_CC_RDI_MAX (__IFLA_BRIDGE_CFM_CC_RDI_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_UNSPEC,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_INSTANCE,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_DMAC,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_SEQ_NO_UPDATE,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_PERIOD,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV_VALUE,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV,
|
||||
IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV_VALUE,
|
||||
__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1)
|
||||
|
||||
struct bridge_stp_xstats {
|
||||
__u64 transition_blk;
|
||||
__u64 transition_fwd;
|
||||
|
||||
Reference in New Issue
Block a user