[Bridge] [net-next v2 08/11] bridge: cfm: Netlink Notifications.

Nikolay Aleksandrov nikolay at nvidia.com
Tue Oct 6 14:49:29 UTC 2020


On Thu, 2020-10-01 at 10:30 +0000, Henrik Bjoernlund wrote:
> This is the implementation of Netlink notifications out of CFM.
> 
> Notifications are initiated whenever a state change happens in CFM.
> 
> IFLA_BRIDGE_CFM:
>     Points to the CFM information.
> 
> IFLA_BRIDGE_CFM_MEP_STATUS_INFO:
>     This indicate that the MEP instance status are following.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO:
>     This indicate that the peer MEP status are following.
> 
> CFM nested attribute has the following attributes in next level.
> 
> IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE:
>     The MEP instance number of the delivered status.
>     The type is NLA_U32.
> IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN:
>     The MEP instance received CFM PDU with unexpected Opcode.
>     The type is NLA_U32 (bool).
> IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN:
>     The MEP instance received CFM PDU with unexpected version.
>     The type is NLA_U32 (bool).
> IFLA_BRIDGE_CFM_MEP_STATUS_RX_LEVEL_LOW_SEEN:
>     The MEP instance received CCM PDU with MD level lower than
>     configured level. This frame is discarded.
>     The type is NLA_U32 (bool).
> 
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE:
>     The MEP instance number of the delivered status.
>     The type is NLA_U32.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID:
>     The added Peer MEP ID of the delivered status.
>     The type is NLA_U32.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT:
>     The CCM defect status.
>     The type is NLA_U32 (bool).
>     True means no CCM frame is received for 3.25 intervals.
>     IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_RDI:
>     The last received CCM PDU RDI.
>     The type is NLA_U32 (bool).
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE:
>     The last received CCM PDU Port Status TLV value field.
>     The type is NLA_U8.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE:
>     The last received CCM PDU Interface Status TLV value field.
>     The type is NLA_U8.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN:
>     A CCM frame has been received from Peer MEP.
>     The type is NLA_U32 (bool).
>     This is cleared after GETLINK IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_TLV_SEEN:
>     A CCM frame with TLV has been received from Peer MEP.
>     The type is NLA_U32 (bool).
>     This is cleared after GETLINK IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO.
> IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEQ_UNEXP_SEEN:
>     A CCM frame with unexpected sequence number has been received
>     from Peer MEP.
>     The type is NLA_U32 (bool).
>     When a sequence number is not one higher than previously received
>     then it is unexpected.
>     This is cleared after GETLINK IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO.
> 
> Reviewed-by: Horatiu Vultur  <horatiu.vultur at microchip.com>
> Signed-off-by: Henrik Bjoernlund  <henrik.bjoernlund at microchip.com>
> ---
>  net/bridge/br_cfm.c         | 48 ++++++++++++++++++++++++
>  net/bridge/br_cfm_netlink.c | 27 +++++++++-----
>  net/bridge/br_netlink.c     | 73 ++++++++++++++++++++++++++++++++-----
>  net/bridge/br_private.h     | 22 ++++++++++-
>  4 files changed, 148 insertions(+), 22 deletions(-)
> 
[snip]
>  	return !hlist_empty(&br->mep_list);
> diff --git a/net/bridge/br_cfm_netlink.c b/net/bridge/br_cfm_netlink.c
> index 7bdf890b8ccc..5f81262c9caa 100644
> --- a/net/bridge/br_cfm_netlink.c
> +++ b/net/bridge/br_cfm_netlink.c
> @@ -325,8 +325,8 @@ static int br_cc_ccm_tx_parse(struct net_bridge *br, struct nlattr *attr,
>  			      struct netlink_ext_ack *extack)
>  {
>  	struct nlattr *tb[IFLA_BRIDGE_CFM_CC_CCM_TX_MAX + 1];
> -	u32 instance;
>  	struct br_cfm_cc_ccm_tx_info tx_info;
> +	u32 instance;
>  	int err;

This hunk is unnecessary as it's new code added by this set, just add it
correctly in the first place and drop this change.

Thanks,
 Nik


More information about the Bridge mailing list