linux/drivers/net
Serhey Popovych 191cdb3822 veth: Be more robust on network device creation when no attributes
There are number of problems with configuration peer
network device in absence of IFLA_VETH_PEER attributes
where attributes for main network device shared with
peer.

First it is not feasible to configure both network
devices with same MAC address since this makes
communication in such configuration problematic.

This case can be reproduced with following sequence:

  # ip link add address 02:11:22:33:44:55 type veth
  # ip li sh
  ...
  26: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc \
  noop state DOWN mode DEFAULT qlen 1000
      link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
  27: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc \
  noop state DOWN mode DEFAULT qlen 1000
      link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

Second it is not possible to register both main and
peer network devices with same name, that happens
when name for main interface is given with IFLA_IFNAME
and same attribute reused for peer.

This case can be reproduced with following sequence:

  # ip link add dev veth1a type veth
  RTNETLINK answers: File exists

To fix both of the cases check if corresponding netlink
attributes are taken from peer_tb when valid or
name based on rtnl ops kind and random address is used.

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-06-22 11:15:15 -04:00
..
appletalk Annotate hardware config module parameters in drivers/net/appletalk/ 2017-04-20 12:02:32 +01:00
arcnet Annotate hardware config module parameters in drivers/net/arcnet/ 2017-04-20 12:02:32 +01:00
bonding bonding: fix 802.3ad support for 14G speed 2017-06-08 16:05:40 -04:00
caif net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
can can: enable CAN FD for virtual CAN devices by default 2017-06-09 14:39:02 +02:00
cris
dsa net: dsa: mv88e6xxx: Add missing static to stub functions 2017-05-30 14:07:53 -04:00
ethernet drivers: net: cpsw-common: Fix reading of mac address for am43 SoCs 2017-06-22 11:14:47 -04:00
fddi format-security: move static strings to const 2017-05-08 17:15:14 -07:00
fjes
hamradio net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
hippi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-05-09 15:42:31 -07:00
hyperv netvsc: move filter setting to rndis_device 2017-06-08 11:45:48 -04:00
ieee802154 ieee802154: don't select COMMON_CLK 2017-04-22 10:28:40 +02:00
ipvlan net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
irda Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-05-15 15:50:49 -07:00
phy net/phy: micrel: configure intterupts after autoneg workaround 2017-06-22 11:05:16 -04:00
plip
ppp
slip net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
team net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
usb qmi_wwan: new Telewell and Sierra device IDs 2017-06-13 13:20:42 -04:00
vmxnet3 vmxnet3: ensure that adapter is in proper state during force_close 2017-05-12 12:23:52 -04:00
wan net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
wimax drivers: net: wimax: i2400m: i2400m-usb: Use time_after for time comparison 2017-05-09 09:40:33 -04:00
wireless wireless-drivers fixes for 4.12 2017-06-20 15:41:56 -04:00
xen-netback
dummy.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
eql.c
geneve.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
gtp.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
ifb.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
Kconfig VSOCK: Add vsockmon device 2017-04-24 12:35:56 -04:00
LICENSE.SRC
loopback.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
macsec.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
macvlan.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
macvtap.c
Makefile VSOCK: Add vsockmon device 2017-04-24 12:35:56 -04:00
mdio.c
mii.c
netconsole.c netconsole: Remove duplicate "netconsole: " logging prefix 2017-06-13 12:57:40 -04:00
nlmon.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
tun.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
veth.c veth: Be more robust on network device creation when no attributes 2017-06-22 11:15:15 -04:00
virtio_net.c virtio_net: lower limit on buffer size 2017-06-02 14:32:34 -04:00
vrf.c net: vrf: Make add_fib_rules per network namespace flag 2017-06-08 19:27:42 -04:00
vsockmon.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
vxlan.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
xen-netfront.c xen-netfront: avoid crashing on resume after a failure in talk_to_netback() 2017-05-11 21:38:50 -04:00