Hey Antonio,

On Wed, Apr 03, 2013 at 11:23:59AM +0200, Antonio Quartulli wrote:
> On Wed, Apr 03, 2013 at 11:17:14AM +0200, Antonio Quartulli wrote:
> > From: Antonio Quartulli <anto...@open-mesh.com>
> > 
> > In order to make batman-adv fully vlan aware later, the
> > semantic used for variables storing the VLAN ID values has
> > to be changed in order to be adapted to the new one which
> > will be used batman-adv wide.

That is for the TT change later I guess? Was confused first, because
batman-adv is already pretty VLAN aware ... maybe add this as a comment?

> > 
> > In particular, the VID has to be an "_unsigned_ short int"
> > and its 4 MSB will be used as a flag bitfield, while the
> > remaining 12 bits are used to store the real VID value
> > 
> > Cc: Simon Wunderlich <s...@hrz.tu-chemnitz.de>
> > Signed-off-by: Antonio Quartulli <anto...@open-mesh.com>
> 
> [cut..]
> 
> > diff --git a/packet.h b/packet.h
> > index a51ccfc..d5464f6 100644
> > --- a/packet.h
> > +++ b/packet.h
> > @@ -105,6 +105,14 @@ enum batadv_tt_client_flags {
> >     BATADV_TT_CLIENT_PENDING = BIT(10),
> >  };
> >  
> > +/**
> > + * batadv_vlan_flags - flags for the four MSB of any vlan ID field
> > + * @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not
> > + */
> > +enum batadv_vlan_flags {
> > +   BATADV_VLAN_HAS_TAG     = BIT(15),
> > +};
> > +

Please put this into main.h or somewhere else as long as it is not sent over
the wire.

> >  /* claim frame types for the bridge loop avoidance */
> >  enum batadv_bla_claimframe {
> >     BATADV_CLAIM_TYPE_CLAIM         = 0x00,
> > diff --git a/soft-interface.c b/soft-interface.c
> > index 403b8c4..34597a2 100644
> > --- a/soft-interface.c
> > +++ b/soft-interface.c
> > @@ -154,7 +154,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
> >                                                 0x00, 0x00};
> >     unsigned int header_len = 0;
> >     int data_len = skb->len, ret;
> > -   short vid __maybe_unused = -1;
> > +   unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
> >     bool do_bcast = false;
> >     uint32_t seqno;
> >     unsigned long brd_delay = 1;
> > @@ -303,7 +303,7 @@ void batadv_interface_rx(struct net_device *soft_iface,
> >     struct ethhdr *ethhdr;
> >     struct vlan_ethhdr *vhdr;
> >     struct batadv_header *batadv_header = (struct batadv_header *)skb->data;
> > -   short vid __maybe_unused = -1;
> > +   unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
> >     __be16 ethertype = __constant_htons(ETH_P_BATMAN);
> >     bool is_bcast;
> 
> I just realised that this change is going to break compatibility because we
> change the menaing of the value that BLA sends over the wire.
> 
> We must postpone this change to the next (BIG) compat bump.

Actually no, it just uses the VID internally, so this is not a problem. See:
http://www.open-mesh.org/projects/batman-adv/wiki/Bridge-loop-avoidance-Protocol

If there is a VID, it will send the frame in the respective VLAN.

The patch looks fine in generally, I have no objections.

Cheers,
        Simon

Attachment: signature.asc
Description: Digital signature

Reply via email to