RE: Failover Mode Between Ethernet and Wireless Interfaces broken on >= 11

From: M&S - Krasznai András <Krasznai.Andras_at_mands.hu>
Date: Thu, 22 Jun 2017 06:24:09 +0000
Good morning!

With em0 and iwn I have the same working configuration for failover between wireless interface and ethernet  adapter. I run FreeBSD-12. 

There was some change introduced with FreeBSD-11 in the syntax how to specify the mac address for the wireless interface (old - FreeBSD-10  working form: ifconfig_iwn0="ether <new mac address>", the new is 
create_args_wlan0="wlanaddr <new mac address>". The "new" mac address is identical with the ethernet adapter's mac address. 

best regards

András Krasznai


-----Eredeti üzenet-----
Feladó: owner-freebsd-current_at_freebsd.org [mailto:owner-freebsd-current_at_freebsd.org] Meghatalmazó Cy Schubert
Küldve: 2017. június 22. 7:40
Címzett: Sean Bruno
Másolatot kap: Renato Botelho; freebsd-current_at_freebsd.org
Tárgy: Re: Failover Mode Between Ethernet and Wireless Interfaces broken on >= 11

In message <cbdb0928-1355-0d1e-7f9c-69fb5edde09d_at_freebsd.org>, Sean Bruno write
s:
> This is an OpenPGP/MIME signed message (RFC 4880 and 3156) 
> --XuprkQPPD5E0VHaDeuAKBatHWCR01xNcA
> Content-Type: multipart/mixed; 
> boundary="fPqiMVoTg6hr4JdbiP1DBOlOppEsSDgjw";
>  protected-headers="v1"
> From: Sean Bruno <sbruno_at_freebsd.org>
> To: Renato Botelho <garga_at_FreeBSD.org>, freebsd-current_at_freebsd.org
> Message-ID: <cbdb0928-1355-0d1e-7f9c-69fb5edde09d_at_freebsd.org>
> Subject: Re: Failover Mode Between Ethernet and Wireless Interfaces 
> broken on  >= 11
> References: <1c1e5c6f-35e5-ca14-2e23-5e33d86a5266_at_FreeBSD.org>
> In-Reply-To: <1c1e5c6f-35e5-ca14-2e23-5e33d86a5266_at_FreeBSD.org>
> 
> --fPqiMVoTg6hr4JdbiP1DBOlOppEsSDgjw
> Content-Type: text/plain; charset=utf-8
> Content-Language: en-US
> Content-Transfer-Encoding: quoted-printable
> 
> 
> 
> On 06/21/17 11:48, Renato Botelho wrote:
> > I've already sent it to net, but I suspect this is the appropriate 
> > plac=
> e
> > to discuss this subject.
> >=20
> > Last night I was configuring a new laptop and decided to give it [1] 
> >a  try. I figured out this section of handbook (similar instructions 
> >are o=
> n
> > lagg(4) manpage) is outdated, based on FreeBSD 10.x.
> >=20
> > Then I modified a bit the commands and tried to get it configured on  
> >12-CURRENT, without success. I spoke with adrian_at_, who told me this  
> >setup doesn't work on FreeBSD > 10, because on newer versions 
> >Wireless  interfaces mac address cannot be changed.
> >=20
> > My next attempt was to do the other way round and make lagg to use 
> >wlan=
> 0
> > mac address instead of em0's. but even doing this my wireless 
> > interface=
> 
> > ended up not working.
> >=20
> > After further investigation I noted that a simple command:
> >=20
> > # ifconfig wlan0 ether $wlan0_current_mac_address
> >=20
> > is enough to break it on 12-CURRENT.
> >=20
> > I've checked if_setlladdr() source code and noted it always replace 
> >the=
> 
> > mac address, even if the same is already configured on the 
> > interface. I=
> s
> > it the expected behavior?
> >=20
> > Just as a PoC I've applied the following patch to if_setlladdr():
> >=20
> > Index: sys/net/if.c
> > 
> >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >=3D=
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> 3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > --- sys/net/if.c	(revision 320097)
> > +++ sys/net/if.c	(working copy)
> > _at__at_ -3519,6 +3519,10 _at__at_
> >  		ifa_free(ifa);
> >  		return (EINVAL);
> >  	}
> > +	if (memcmp(lladdr, LLADDR(sdl), len) =3D=3D 0) {
> > +		ifa_free(ifa);
> > +		return (0);
> > +	}
> >  	switch (ifp->if_type) {
> >  	case IFT_ETHER:
> >  	case IFT_FDDI:
> >=20
> > And configured it to use wlan0 mac address on rc.conf:
> >=20
> > ifconfig_em0=3D"ether 60:67:20:c5:2d:48 up"
> > wlans_iwn0=3D"wlan0"
> > ifconfig_wlan0=3D"WPA"
> > cloned_interfaces=3D"lagg0"
> > ifconfig_lagg0=3D"up laggproto failover laggport em0 laggport wlan0 
> >DHC=
> P"
> >=20
> > and it's now working as expected.
> >=20
> > Other than that, I believe if wlan interfaces cannot have their mac  
> >address changed, ifconfig should return an error when user attempts 
> >to  do it, and if_setlladdr() should do the same.
> >=20
> > Thoughts?
> >=20
> > [1]
> > 
> >https://www.freebsd.org/doc/handbook/network-aggregation.html#network
> >in=
> g-lagg-wired-and-wireless
> >=20
> 
> 
> Maybe this is a "iflib" problem.  em(4) and igb(4) are pretty 
> different now in head.  Can you shove it into bugzilla with a test 
> case (copy/paste your email) and tag me on it?

As a late comer to this thread, I don't have any issues either. I too have a bge interface and iwn set up as follows:

ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"


--
Cheers,
Cy Schubert <Cy.Schubert_at_cschubert.com>
FreeBSD UNIX:  <cy_at_FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.


_______________________________________________
freebsd-current_at_freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Thu Jun 22 2017 - 04:39:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:12 UTC