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 | IFLA_BRIDGE_CFM_CC_RDI_INFO, | 345 | IFLA_BRIDGE_CFM_CC_RDI_INFO, |
| 346 | IFLA_BRIDGE_CFM_CC_CCM_TX_INFO, | 346 | IFLA_BRIDGE_CFM_CC_CCM_TX_INFO, |
| 347 | IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO, | 347 | IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO, |
| 348 | IFLA_BRIDGE_CFM_MEP_STATUS_INFO, | ||
| 349 | IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO, | ||
| 348 | __IFLA_BRIDGE_CFM_MAX, | 350 | __IFLA_BRIDGE_CFM_MAX, |
| 349 | }; | 351 | }; |
| 350 | 352 | ||
| @@ -424,6 +426,33 @@ enum { · 73 unmodified lines | |||
| 424 | 426 | ||
| 425 | #define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1) | 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 | struct bridge_stp_xstats { | 456 | struct bridge_stp_xstats { |
| 428 | __u64 transition_blk; | 457 | __u64 transition_blk; |
| 429 | __u64 transition_fwd; | 458 | __u64 transition_fwd; |
| @@ -780,6 +780,7 @@ enum { · 779 unmodified lines | |||
| 780 | #define RTEXT_FILTER_SKIP_STATS (1 << 3) | 780 | #define RTEXT_FILTER_SKIP_STATS (1 << 3) |
| 781 | #define RTEXT_FILTER_MRP (1 << 4) | 781 | #define RTEXT_FILTER_MRP (1 << 4) |
| 782 | #define RTEXT_FILTER_CFM_CONFIG (1 << 5) | 782 | #define RTEXT_FILTER_CFM_CONFIG (1 << 5) |
| 783 | #define RTEXT_FILTER_CFM_STATUS (1 << 6) | ||
| 783 | 784 | ||
| 784 | /* End of information exported to user level */ | 785 | /* End of information exported to user level */ |
| 785 | 786 | ||