[Bridge] [PATCH net-next 15/16] selftests: net: bridge: add test for igmpv3 exclude timeout

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov Test that when a group in exclude mode expires it changes mode to include and the blocked entries are deleted. Signed-off-by: Nikolay Aleksandrov --- .../selftests/net/forwarding/bridge_igmp.sh | 49 ++- 1 file changed, 48 insertions(+), 1 deletion(-

[Bridge] [PATCH net-next 16/16] selftests: net: bridge: add test for igmpv3 *, g auto-add

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov When we have *,G ports in exclude mode and a new S,G,port is added the kernel has to automatically create an S,G entry for each exclude port to get proper forwarding. Signed-off-by: Nikolay Aleksandrov --- .../selftests/net/forwarding/bridge_igmp.sh | 31 +++

[Bridge] [PATCH net-next 14/16] selftests: net: bridge: add test for igmpv3 exc -> block report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action EXCLUDE (X,Y) BLOCK (A) EXCLUDE (X+(A-Y),Y) (A-X-Y)=Group Timer Send Q(G,A-Y) Signed-off-by: Nikolay

[Bridge] [PATCH net-next 12/16] selftests: net: bridge: add test for igmpv3 exc -> to_exclude report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action EXCLUDE (X,Y) TO_EX (A) EXCLUDE (A-Y,Y*A)(A-X-Y)=Group Timer Delete (X-A)

[Bridge] [PATCH net-next 11/16] selftests: net: bridge: add test for igmpv3 exc -> is_exclude report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action EXCLUDE (X,Y) IS_EX (A) EXCLUDE (A-Y,Y*A)(A-X-Y)=GMI Delete (X-A)

[Bridge] [PATCH net-next 09/16] selftests: net: bridge: add test for igmpv3 exc -> allow report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action EXCLUDE (X,Y) ALLOW (A) EXCLUDE (X+A,Y-A) (A)=GMI Signed-off-by: Nikolay Aleksandrov --- .../selftests/net/forwarding/bridge_igmp.sh | 83

[Bridge] [PATCH net-next 07/16] selftests: net: bridge: add test for igmpv3 inc -> is_exclude report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action INCLUDE (A)IS_EX (B) EXCLUDE (A*B,B-A) (B-A)=0 Delete (A-B)

[Bridge] [PATCH net-next 10/16] selftests: net: bridge: add test for igmpv3 exc -> is_include report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action EXCLUDE (X,Y) IS_IN (A) EXCLUDE (X+A,Y-A) (A)=GMI Signed-off-by: Nikolay Aleksandrov --- .../selftests/net/forwarding/bridge_igmp.sh | 27 ++

[Bridge] [PATCH net-next 13/16] selftests: net: bridge: add test for igmpv3 inc -> block report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action INCLUDE (A)BLOCK (B) INCLUDE (A) Send Q(G,A*B) Signed-off-by: Nikolay Aleksandrov --- .../selftests/net/forwarding/bridge_igmp.sh | 33

[Bridge] [PATCH net-next 04/16] selftests: net: bridge: igmp: add IGMPv3 entries' state helpers

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov Add helpers which will be used in subsequent tests, they are: - check_sg_entries: check for proper source list and S,G entry existence - check_sg_fwding: check for proper traffic forwarding/blocking - check_sg_state: check for proper blocked/forwarding entry state

[Bridge] [PATCH net-next 06/16] selftests: net: bridge: add test for igmpv3 inc -> is_include report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action INCLUDE (A)IS_IN (B) INCLUDE (A+B)(B)=GMI Signed-off-by: Nikolay Aleksandrov --- .../selftests/net/forwarding/bridge_igmp.sh | 25 +

[Bridge] [PATCH net-next 08/16] selftests: net: bridge: add test for igmpv3 inc -> to_exclude report

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov The test checks for the following case: state reportresult action INCLUDE (A)TO_EX (B) EXCLUDE (A*B,B-A) (B-A)=0 Delete (A-B)

[Bridge] [PATCH net-next 01/16] selftests: net: bridge: rename current igmp tests to igmpv2

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov To prepare the bridge_igmp.sh for IGMPv3 we need to rename the current test to IGMPv2. Signed-off-by: Nikolay Aleksandrov --- tools/testing/selftests/net/forwarding/bridge_igmp.sh | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/tes

[Bridge] [PATCH net-next 00/16] selftests: net: bridge: add tests for IGMPv3

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov Hi, This set adds tests for the bridge's new IGMPv3 support. The tests use precooked packets which are sent via mausezahn and the resulting state after each test is checked for proper X,Y sets, (*,G) source list, source list entry timers, (S,G) existence and flags, packe

[Bridge] [PATCH net-next 02/16] selftests: net: bridge: igmp: add support for packet source address

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov Add support for one more argument which specifies the source address to use. It will be later used for IGMPv3 S,G entry testing. Signed-off-by: Nikolay Aleksandrov --- .../testing/selftests/net/forwarding/bridge_igmp.sh | 13 +++-- 1 file changed, 7 insertions

[Bridge] [PATCH net-next 05/16] selftests: net: bridge: add tests for igmpv3 is_include and inc -> allow reports

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov First we test is_include/include mode then we build on that with allow effectively achieving: state reportresult action INCLUDE (A)ALLOW (B)INCLUDE (A+B) (B)=GMI Signed-off-by: Nikolay Aleksandrov --- .../selftests

[Bridge] [PATCH net-next 03/16] selftests: net: bridge: igmp: check for specific udp ip protocol

2020-10-27 Thread Nikolay Aleksandrov
From: Nikolay Aleksandrov We have to specifically check for udp protocol in addition to the mac address because in IGMPv3 tests group-specific queries will use the same mac address. Signed-off-by: Nikolay Aleksandrov --- tools/testing/selftests/net/forwarding/bridge_igmp.sh | 2 +- 1 file chan

Re: [Bridge] [PATCH net-next v7 01/10] net: bridge: extend the process of special frames

2020-10-27 Thread Nikolay Aleksandrov
On Tue, 2020-10-27 at 07:59 -0700, Stephen Hemminger wrote: > On Tue, 27 Oct 2020 10:02:42 + > Henrik Bjoernlund via Bridge wrote: > > > +/* Return 0 if the frame was not processed otherwise 1 > > + * note: already called with rcu_read_lock > > + */ > > +static int br_process_frame_type(struc

Re: [Bridge] [PATCH net-next v7 01/10] net: bridge: extend the process of special frames

2020-10-27 Thread Stephen Hemminger
On Tue, 27 Oct 2020 10:02:42 + Henrik Bjoernlund via Bridge wrote: > +/* Return 0 if the frame was not processed otherwise 1 > + * note: already called with rcu_read_lock > + */ > +static int br_process_frame_type(struct net_bridge_port *p, > + struct sk_buff *skb

[Bridge] [PATCH net-next v7 07/10] bridge: cfm: Netlink SET configuration Interface.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This is the implementation of CFM netlink configuration set information interface. Add new nested netlink attributes. These attributes are used by the user space to create/delete/configure CFM instances. SETLINK: IFLA_BRIDGE_CFM: Indicate that the following attributes are CFM. IF

[Bridge] [PATCH net-next v7 09/10] bridge: cfm: Netlink GET status Interface.

2020-10-27 Thread Henrik Bjoernlund via Bridge
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.

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

2020-10-27 Thread Henrik Bjoernlund via Bridge
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_C

[Bridge] [PATCH net-next v7 01/10] net: bridge: extend the process of special frames

2020-10-27 Thread Henrik Bjoernlund via Bridge
This patch extends the processing of frames in the bridge. Currently MRP frames needs special processing and the current implementation doesn't allow a nice way to process different frame types. Therefore try to improve this by adding a list that contains frame types that need special processing. T

[Bridge] [PATCH net-next v7 05/10] bridge: cfm: Kernel space implementation of CFM. CCM frame TX added.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This is the second commit of the implementation of the CFM protocol according to 802.1Q section 12.14. Functionality is extended with CCM frame transmission. Interface is extended with these functions: br_cfm_cc_rdi_set() br_cfm_cc_ccm_tx() br_cfm_cc_config_set() A MEP Continuity Check feature c

[Bridge] [PATCH net-next v7 06/10] bridge: cfm: Kernel space implementation of CFM. CCM frame RX added.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This is the third commit of the implementation of the CFM protocol according to 802.1Q section 12.14. Functionality is extended with CCM frame reception. The MEP instance now contains CCM based status information. Most important is the CCM defect status indicating if correct CCM frames are receive

[Bridge] [PATCH net-next v7 02/10] bridge: cfm: Add BRIDGE_CFM to Kconfig.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This makes it possible to include or exclude the CFM protocol according to 802.1Q section 12.14. Signed-off-by: Henrik Bjoernlund Reviewed-by: Horatiu Vultur Acked-by: Nikolay Aleksandrov --- net/bridge/Kconfig | 11 +++ net/bridge/br_device.c | 3 +++ net/bridge/br_private.h

[Bridge] [PATCH net-next v7 04/10] bridge: cfm: Kernel space implementation of CFM. MEP create/delete.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This is the first commit of the implementation of the CFM protocol according to 802.1Q section 12.14. It contains MEP instance create, delete and configuration. Connectivity Fault Management (CFM) comprises capabilities for detecting, verifying, and isolating connectivity failures in Virtual Brid

[Bridge] [PATCH net-next v7 03/10] bridge: uapi: cfm: Added EtherType used by the CFM protocol.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This EtherType is used by all CFM protocal frames transmitted according to 802.1Q section 12.14. Signed-off-by: Henrik Bjoernlund Reviewed-by: Horatiu Vultur Acked-by: Nikolay Aleksandrov --- include/uapi/linux/if_ether.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/uapi/linux

[Bridge] [PATCH net-next v7 08/10] bridge: cfm: Netlink GET configuration Interface.

2020-10-27 Thread Henrik Bjoernlund via Bridge
This is the implementation of CFM netlink configuration get information interface. Add new nested netlink attributes. These attributes are used by the user space to get configuration information. GETLINK: Request filter RTEXT_FILTER_CFM_CONFIG: Indicating that CFM configuration informatio

[Bridge] [PATCH net-next v7 00/10] net: bridge: cfm: Add support for Connectivity Fault Management(CFM)

2020-10-27 Thread Henrik Bjoernlund via Bridge
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