B.A.T.M.A.N Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven@narfation.org>
To: "Linus Lüssing" <linus.luessing@c0d3.blue>
Cc: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: [PATCH] batman-adv: Map VID 0 to untagged TT VLAN
Date: Tue, 17 Dec 2024 17:38:09 +0100	[thread overview]
Message-ID: <2224062.Icojqenx9y@sven-l14> (raw)
In-Reply-To: <Z2GCU5mOICMJgiwc@sellars>

[-- Attachment #1: Type: text/plain, Size: 2932 bytes --]

On Tuesday, 17 December 2024 14:53:23 CET Linus Lüssing wrote:
> On Mon, Dec 16, 2024 at 07:37:12PM +0100, Sven Eckelmann wrote:
> > diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
> > index 8e0f44c71696f642d80304ec2724e8b5e56a5d93..333e947afcce7ca4128be8406f23295df723515c 100644
> > --- a/net/batman-adv/main.c
> > +++ b/net/batman-adv/main.c
> > @@ -637,6 +637,13 @@ unsigned short batadv_get_vid(struct sk_buff *skb, size_t header_len)
> >  
> >  	vhdr = (struct vlan_ethhdr *)(skb->data + header_len);
> >  	vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
> > +
> > +	/* VID 0 is only used to indicate "priority tag" frames which only
> > +	 * contain priority information and no VID.
> > +	 */
> > +	if (vid == 0)
> > +		return BATADV_NO_FLAGS;
> > +
> >  	vid |= BATADV_VLAN_HAS_TAG;
> >  
> >  	return vid;
> 
> I guess with this patch all TT entries previously in
> TT VLAN 0 would be moved to untagged/NO_FLAGS TT entries, right?

Yes, as specified by 802.1Q-2011, it is meant to transport only priority 
information and not a VID. For a switch, the PVID would be used but because 
batman-adv is here used as the lower device (for either a VLAN aware bridge or 
8021q device), we don't have to add the PVID - the VID is simply missing 
(because it is !BATADV_VLAN_HAS_TAG) and therefore has to check for the 
"untagged" TT global entries (or add entries to the "untagged" TT local part)

> Wouldn't that technically break compatibility? Let's say someone
> uses VLAN headers with VID 0 to be able to use priorities / QoS.

Then this person should have noticed that it broken at the moment and doesn't 
work as expected (to reach the "untagged remotes" with the priority tagged
packets)

> What if some old nodes still announced+used VLAN 0 in batman-adv
> while others used it after this patch, with the mapping to
> NO_FLAGS?

Then the misbehaving old node would still misbehave. Because you should 
actually be able to talk with VID 0 to the untagged global TT entries - which 
the old node fails to do. So I could also add

  Fixes: 0ffa9e8d86d6 ("batman-adv: use vid when computing local and global TT CRC")
  Fixes: 5d2c05b21337 ("batman-adv: add per VLAN interface attribute framework")

if you prefer and transmit it via the batadv/net queue.

But I considered VID 0 somewhat esoteric for in-Linux usage because most tools 
just use DSCP. I am only away of tools like isochron-send which just inject 
raw packets with the VLAN headers directly. And using another 8021q device 
with VID on one side is a good way to create a unidirectional communication 
(when you want a bidirectional one) because the other end will just reply
with a vanilla, untagged packet. And because of that, things like ARP will
not be able to "finish" because the answers are received on the non-VID0 
interface.

But maybe I am wrong about that.

Kind regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2024-12-17 16:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-16 18:37 [PATCH] batman-adv: Map VID 0 to untagged TT VLAN Sven Eckelmann
2024-12-16 20:51 ` Antonio Quartulli
2024-12-17 13:53 ` Linus Lüssing
2024-12-17 16:38   ` Sven Eckelmann [this message]
2024-12-18  8:02     ` Antonio Quartulli
2024-12-30 21:50       ` Linus Lüssing

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2224062.Icojqenx9y@sven-l14 \
    --to=sven@narfation.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=linus.luessing@c0d3.blue \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox