[Bridge] [PATCH net-next v4 10/10] bridge: cfm: Netlink Notifications.

Nikolay Aleksandrov
2020-10-09T22:03:04Z

On Fri, 2020-10-09 at 14:35 +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.
>
> Signed-off-by: Henrik Bjoernlund  <henrik.bjoernlund at
microchip.com>
> Reviewed-by: Horatiu Vultur  <horatiu.vultur at microchip.com>
> ---
>  net/bridge/br_cfm.c         | 48 ++++++++++++++++++++++++
>  net/bridge/br_cfm_netlink.c | 25 ++++++++-----
>  net/bridge/br_netlink.c     | 73 ++++++++++++++++++++++++++++++++-----
>  net/bridge/br_private.h     | 22 ++++++++++-
>  4 files changed, 147 insertions(+), 21 deletions(-)
>

Acked-by: Nikolay Aleksandrov <nikolay at nvidia.com>