freebsd-dev/sbin/ifconfig
Kristof Provost b82b8055ad ifconfig: fix vlan/vlanproto reconfiguration
The setvlantag() and setvlanproto() functions are used in two scenarios:
when we create a new vlan interface and when we update an existing
interface.
These are distinguished by the getvlan() at the end of the functions. If
this fails we assume that is because the interface doesn't exist (so
we're creating a new one). We only update the 'params' struct, and
expect the settings to be applied when we vlan_create().

However, if we're updating an existing interface we do not retrieve the
current settings, and can end up invalidating settings.

Fix this by using the settings we retrieved while checking which
scenario we're in.

Note that we do not address this for setvlandev(), because if_vlan does
not allow the vlan parent device to be changed without disassociating it
first (with ifconfig vlanX -vlandev).

Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D35848
2022-07-21 18:36:01 +02:00
..
tests
af_inet6.c ifconfig: warn if setting an Internet address without mask 2021-11-09 09:33:01 -06:00
af_inet.c ifconfig: warn if setting an Internet address without mask 2021-11-09 09:33:01 -06:00
af_link.c ifconfig(8): optimize -f ether:dash mode 2020-06-26 16:20:34 +00:00
af_nd6.c Update for IETF draft-ietf-6man-ipv6only-flag. 2019-03-06 23:31:42 +00:00
carp.c sbin/ifconfig: Use a global libifconfig handle 2021-03-02 21:15:40 -05:00
ifbridge.c sbin/ifconfig: Use a global libifconfig handle 2021-03-02 21:15:40 -05:00
ifclone.c sbin/ifconfig: Use a global libifconfig handle 2021-03-02 21:15:40 -05:00
ifconfig.8 ifconfig.8: cleanup reminiscence about long gone ppp(4) 2022-07-11 11:53:54 +07:00
ifconfig.c arp: Implement sticky ARP mode for interfaces. 2022-05-27 12:41:30 +00:00
ifconfig.h ifconfig: add setifcapnv() 2022-05-24 23:59:33 +03:00
iffib.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifgif.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifgre.c Add GRE-in-UDP encapsulation support as defined in RFC8086. 2019-04-24 09:05:45 +00:00
ifgroup.c sbin/ifconfig: Use a global libifconfig handle 2021-03-02 21:15:40 -05:00
ifieee80211.c ifconfig: 80211, add line break after key info 2021-03-24 22:26:39 +00:00
ifipsec.c Update ifr_name before invoking IPSECSREQID ioctl, this fixes the case, 2018-09-22 16:30:48 +00:00
iflagg.c sbin/ifconfig: Use a global libifconfig handle 2021-03-02 21:15:40 -05:00
ifmac.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifmedia.c ifconfig: Reuse media state in ifmedia_getstate 2021-04-15 22:32:25 -04:00
ifpfsync.c pfsync: fix incorrect enabling of defer mode 2021-12-06 13:25:14 +01:00
ifstf.c if_stf: add 6rd support 2021-11-20 19:29:01 +01:00
ifvlan.c ifconfig: fix vlan/vlanproto reconfiguration 2022-07-21 18:36:01 +02:00
ifvxlan.c Ensure consistent error messages from ifconfig(8). 2020-11-26 16:36:50 +00:00
Makefile if_stf: add 6rd support 2021-11-20 19:29:01 +01:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
Makefile.depend.options Add Makefile.depend.options 2019-12-11 17:37:37 +00:00
sfp.c sbin/ifconfig: Use a global libifconfig handle 2021-03-02 21:15:40 -05:00