Re: [RFC, net-next] net: qos: introduce a redundancy flow action

From: Joergen Andreasen
Date: Tue Nov 17 2020 - 14:01:08 EST


The 11/17/2020 14:30, Xiaoliang Yang wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> This patch introduce a redundancy flow action to implement frame
> replication and elimination for reliability, which is defined in
> IEEE P802.1CB.
>
> There are two modes for redundancy action: generator and recover mode.
> Generator mode add redundancy tag and replicate the frame to different
> egress ports. Recover mode drop the repeat frames and remove redundancy
> tag from the frame.
>
> Below is the setting example in user space:
> > tc qdisc add dev swp0 clsact
> > tc filter add dev swp0 ingress protocol 802.1Q flower \
> skip_hw dst_mac 00:01:02:03:04:05 vlan_id 1 \
> action redundancy generator split dev swp1 dev swp2
>
> > tc filter add dev swp0 ingress protocol 802.1Q flower
> skip_hw dst_mac 00:01:02:03:04:06 vlan_id 1 \
> action redundancy recover
>
> Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@xxxxxxx>

Hi Xiaoliang,

I like your idea about using filter actions for FRER configuration.

I think this is a good starting point but I think that this approach will only
allow us to configure end systems and not relay systems in bridges/switches.

In the following I refer to sections and figures in 802.1CB-2017.

I am missing the following possibilities:
Configure split without adding an r-tag (Figure C-4 Relay system C).
Configure recovery without popping the r-tag (Figure C4 Relay system F).
Disable flooding and learning per VLAN (Section C.7).
Select between vector and match recovery algorithm (Section 7.4.3.4 and 7.4.3.5).
Configure history length if vector algorithm is used (Section 10.4.1.6).
Configure reset timeout (Section 10.4.1.7).
Adding an individual recovery function (Section 7.5).
Counters to be used for latent error detection (Section 7.4.4).

I would prefer to use the term 'frer' instead of 'red' or 'redundancy'
in all definitions and functions except for 'redundancy-tag'.
--
Joergen Andreasen, Microchip