This is the implementation of CFM netlink status get information interface. Add new nested netlink attributes. These attributes are used by the user space to get status information. GETLINK: Request filter RTEXT_FILTER_CFM_STATUS: Indicating that CFM status information must be delivered. 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. GETLINK RTEXT_FILTER_CFM_STATUS: IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE: The MEP instance number of the delivered status. The type is u32. IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN: The MEP instance received CFM PDU with unexpected Opcode. The type is u32 (bool). IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN: The MEP instance received CFM PDU with unexpected version. The type is 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 u32 (bool). IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE: The MEP instance number of the delivered status. The type is u32. IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID: The added Peer MEP ID of the delivered status. The type is u32. IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT: The CCM defect status. The type is 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 u32 (bool). IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE: The last received CCM PDU Port Status TLV value field. The type is u8. IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE: The last received CCM PDU Interface Status TLV value field. The type is u8. IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN: A CCM frame has been received from Peer MEP. The type is 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 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 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.
Showing the changes to include/uapi/linux (2 of 5 files). Show all
Unified · Split
| @@ -345,6 +345,8 @@ enum { · 344 unmodified lines | ||
| 345 | 345 | IFLA_BRIDGE_CFM_CC_RDI_INFO, |
| 346 | 346 | IFLA_BRIDGE_CFM_CC_CCM_TX_INFO, |
| 347 | 347 | IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO, |
| 348 | + IFLA_BRIDGE_CFM_MEP_STATUS_INFO, | |
| 349 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO, | |
| 348 | 350 | __IFLA_BRIDGE_CFM_MAX, |
| 349 | 351 | }; |
| 350 | 352 | |
| @@ -424,6 +426,33 @@ enum { · 73 unmodified lines | ||
| 424 | 426 | |
| 425 | 427 | #define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1) |
| 426 | 428 | |
| 429 | +enum { | |
| 430 | + IFLA_BRIDGE_CFM_MEP_STATUS_UNSPEC, | |
| 431 | + IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE, | |
| 432 | + IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN, | |
| 433 | + IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN, | |
| 434 | + IFLA_BRIDGE_CFM_MEP_STATUS_RX_LEVEL_LOW_SEEN, | |
| 435 | + __IFLA_BRIDGE_CFM_MEP_STATUS_MAX, | |
| 436 | +}; | |
| 437 | + | |
| 438 | +#define IFLA_BRIDGE_CFM_MEP_STATUS_MAX (__IFLA_BRIDGE_CFM_MEP_STATUS_MAX - 1) | |
| 439 | + | |
| 440 | +enum { | |
| 441 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_UNSPEC, | |
| 442 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE, | |
| 443 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID, | |
| 444 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT, | |
| 445 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_RDI, | |
| 446 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE, | |
| 447 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE, | |
| 448 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN, | |
| 449 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_TLV_SEEN, | |
| 450 | + IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEQ_UNEXP_SEEN, | |
| 451 | + __IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX, | |
| 452 | +}; | |
| 453 | + | |
| 454 | +#define IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX (__IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX - 1) | |
| 455 | + | |
| 427 | 456 | struct bridge_stp_xstats { |
| 428 | 457 | __u64 transition_blk; |
| 429 | 458 | __u64 transition_fwd; |
| @@ -780,6 +780,7 @@ enum { · 779 unmodified lines | ||
| 780 | 780 | #define RTEXT_FILTER_SKIP_STATS (1 << 3) |
| 781 | 781 | #define RTEXT_FILTER_MRP (1 << 4) |
| 782 | 782 | #define RTEXT_FILTER_CFM_CONFIG (1 << 5) |
| 783 | +#define RTEXT_FILTER_CFM_STATUS (1 << 6) | |
| 783 | 784 | |
| 784 | 785 | /* End of information exported to user level */ |
| 785 | 786 | |