mirror of https://gitee.com/openkylin/linux.git
ipip: always notify change when params are updated
netdev_state_change() was called only when end points or link was updated. Now that all parameters are advertised via netlink, we must advertise any change. This patch also prepares the support of ipip tunnels management via rtnl. The code which update tunnels will be put in a new function. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0b11245722
commit
c38cc4b599
|
@ -680,29 +680,27 @@ ipip_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
|
|||
break;
|
||||
}
|
||||
t = netdev_priv(dev);
|
||||
ipip_tunnel_unlink(ipn, t);
|
||||
synchronize_net();
|
||||
t->parms.iph.saddr = p.iph.saddr;
|
||||
t->parms.iph.daddr = p.iph.daddr;
|
||||
memcpy(dev->dev_addr, &p.iph.saddr, 4);
|
||||
memcpy(dev->broadcast, &p.iph.daddr, 4);
|
||||
ipip_tunnel_link(ipn, t);
|
||||
netdev_state_change(dev);
|
||||
}
|
||||
|
||||
ipip_tunnel_unlink(ipn, t);
|
||||
synchronize_net();
|
||||
t->parms.iph.saddr = p.iph.saddr;
|
||||
t->parms.iph.daddr = p.iph.daddr;
|
||||
memcpy(dev->dev_addr, &p.iph.saddr, 4);
|
||||
memcpy(dev->broadcast, &p.iph.daddr, 4);
|
||||
ipip_tunnel_link(ipn, t);
|
||||
t->parms.iph.ttl = p.iph.ttl;
|
||||
t->parms.iph.tos = p.iph.tos;
|
||||
t->parms.iph.frag_off = p.iph.frag_off;
|
||||
if (t->parms.link != p.link) {
|
||||
t->parms.link = p.link;
|
||||
ipip_tunnel_bind_dev(dev);
|
||||
}
|
||||
netdev_state_change(dev);
|
||||
}
|
||||
|
||||
if (t) {
|
||||
err = 0;
|
||||
if (cmd == SIOCCHGTUNNEL) {
|
||||
t->parms.iph.ttl = p.iph.ttl;
|
||||
t->parms.iph.tos = p.iph.tos;
|
||||
t->parms.iph.frag_off = p.iph.frag_off;
|
||||
if (t->parms.link != p.link) {
|
||||
t->parms.link = p.link;
|
||||
ipip_tunnel_bind_dev(dev);
|
||||
netdev_state_change(dev);
|
||||
}
|
||||
}
|
||||
if (copy_to_user(ifr->ifr_ifru.ifru_data, &t->parms, sizeof(p)))
|
||||
err = -EFAULT;
|
||||
} else
|
||||
|
|
Loading…
Reference in New Issue