Merge branch 'net-bridge-cfm-add-support-for-connectivity-fault-management-cfm'
Henrik Bjoernlund says: ==================== net: bridge: cfm: Add support for Connectivity Fault Management(CFM) Connectivity Fault Management (CFM) is defined in 802.1Q section 12.14. Connectivity Fault Management (CFM) comprises capabilities for detecting, verifying, and isolating connectivity failures in Virtual Bridged Networks. These capabilities can be used in networks operated by multiple independent organizations, each with restricted management access to each other’s equipment. CFM functions are partitioned as follows: — Path discovery — Fault detection — Fault verification and isolation — Fault notification — Fault recovery The primary CFM protocol shims are called Maintenance Points (MPs). A MP can be either a MEP or a MHF. The MEP: -It is the Maintenance association End Point described in 802.1Q section 19.2. -It is created on a specific level (1-7) and is assuring that no CFM frames are passing through this MEP on lower levels. -It initiates and terminates/validates CFM frames on its level. -It can only exist on a port that is related to a bridge. The MHF: -It is the Maintenance Domain Intermediate Point (MIP) Half Function (MHF) described in 802.1Q section 19.3. -It is created on a specific level (1-7). -It is extracting/injecting certain CFM frame on this level. -It can only exist on a port that is related to a bridge. -Currently not supported. There are defined the following CFM protocol functions: -Continuity Check -Loopback. Currently not supported. -Linktrace. Currently not supported. This CFM component supports create/delete of MEP instances and configuration of the different CFM protocols. Also status information can be fetched and delivered through notification due to defect status change. The user interacts with CFM using the 'cfm' user space client program, the client talks with the kernel using netlink. Any notification emitted by CFM from the kernel can be monitored in user space by starting 'cfm_server' program. Currently this 'cfm' and 'cfm_server' programs are standalone placed in a cfm repository https://github.com/microchip-ung/cfm but it is considered to integrate this into 'iproute2'. v1 -> v2 Added the CFM switchdev interface and also added utilization by calling the interface from the kernel CFM implementation trying to offload CFM functionality to HW. This offload (CFM driver) is currently not implemented. Corrections based on RCF comments: -The single CFM kernel implementation Patch is broken up into three patches. -Changed the list of MEP instances from list_head to hlist_head. -Removed unnecessary RCU list traversing. -Solved RCU unlocking problem. -Removed unnecessary comments. -Added ASSERT_RTNL() where required. -Shaping up on error messages. -Correction NETLINK br_fill_ifinfo() to be able to handle 'filter_mask' with multiple flags asserted. v2 -> v3 -The switchdev definition and utilization has been removed as there was no switchdev implementation. -Some compiling issues are fixed as Reported-by: kernel test robot <lkp@intel.com>. v3 -> v4 -Fixed potential crash during hlist walk where elements are removed. -Giving all commits unique titles. -NETLINK implementation split into three commits. -Commit "bridge: cfm: Bridge port remove" is merged with commit "bridge: cfm: Kernel space implementation of CFM. MEP create/delete." v4 -> v5 -Reordered members in struct net_bridge to bring member frame_type_list to the first cache line. -Helper functions nla_get_mac() and nla_get_maid() are removed. -The NLA_POLICY_NESTED() macro is used to initialize the br_cfm_policy array. -Fixed reverse xmas tree. v5 -> v6 -Fixed that the SKB buffer was not freed during error handling return. -Removed unused struct definition. -Changed bool to u8 bitfields for space save. -Utilizing the NETLINK policy validation feature. v6 -> v7 -Removed check of parameters in br_cfm_mep_config_set() and br_cfm_cc_peer_mep_add() in first commit of MEP implementation (Patch 4 out of 10) Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com> Signed-off-by: Henrik Bjoernlund <henrik.bjoernlund@microchip.com> ==================== Link: https://lore.kernel.org/r/20201027100251.3241719-1-henrik.bjoernlund@microchip.comSigned-off-by: Jakub Kicinski <kuba@kernel.org>
Showing
net/bridge/br_cfm.c
0 → 100644
This diff is collapsed.
net/bridge/br_cfm_netlink.c
0 → 100644
This diff is collapsed.
net/bridge/br_private_cfm.h
0 → 100644
Please register or sign in to comment