net: hsr: generate supervision frame without HSR/PRP tag
authorGeorge McCollister <george.mccollister@gmail.com>
Wed, 10 Feb 2021 01:02:10 +0000 (19:02 -0600)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Feb 2021 21:24:44 +0000 (13:24 -0800)
commit78be9217c4014cebac4d549cc2db1f2886d5a8fb
tree968ff404a23219e4345511bcdf2e9c19a9244a11
parentf8a7e0145d58f53647c43fd9dd913da190c6c253
net: hsr: generate supervision frame without HSR/PRP tag

For a switch to offload insertion of HSR/PRP tags, frames must not be
sent to the CPU facing switch port with a tag. Generate supervision frames
(eth type ETH_P_PRP) without HSR v1 (ETH_P_HSR)/PRP tag and rely on
create_tagged_frame which inserts it later. This will allow skipping the
tag insertion for all outgoing frames in the future which is required for
HSR v1/PRP tag insertions to be offloaded.

HSR v0 supervision frames always contain tag information so insertion of
the tag can't be offloaded. IEC 62439-3 Ed.2.0 (HSR v1) specifically
notes that this was changed since v0 to allow offloading.

Signed-off-by: George McCollister <george.mccollister@gmail.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Tested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/hsr/hsr_device.c
net/hsr/hsr_forward.c