vxcan.c (976e3645923bdd2fe7893aae33fd7a21098bfb28) vxcan.c (872f690341948b502c93318f806d821c56772c42)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * vxcan.c - Virtual CAN Tunnel for cross namespace communication
4 *
5 * This code is derived from drivers/net/can/vcan.c for the virtual CAN
6 * specific parts and from drivers/net/veth.c to implement the netlink API
7 * for network interface pairs in a common and established way.
8 *

--- 172 unchanged lines hidden (view full) ---

181 NULL);
182 if (err < 0)
183 return err;
184
185 tbp = peer_tb;
186 }
187
188 if (ifmp && tbp[IFLA_IFNAME]) {
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * vxcan.c - Virtual CAN Tunnel for cross namespace communication
4 *
5 * This code is derived from drivers/net/can/vcan.c for the virtual CAN
6 * specific parts and from drivers/net/veth.c to implement the netlink API
7 * for network interface pairs in a common and established way.
8 *

--- 172 unchanged lines hidden (view full) ---

181 NULL);
182 if (err < 0)
183 return err;
184
185 tbp = peer_tb;
186 }
187
188 if (ifmp && tbp[IFLA_IFNAME]) {
189 nla_strlcpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ);
189 nla_strscpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ);
190 name_assign_type = NET_NAME_USER;
191 } else {
192 snprintf(ifname, IFNAMSIZ, DRV_NAME "%%d");
193 name_assign_type = NET_NAME_ENUM;
194 }
195
196 peer_net = rtnl_link_get_net(net, tbp);
197 if (IS_ERR(peer_net))

--- 20 unchanged lines hidden (view full) ---

218 netif_carrier_off(peer);
219
220 err = rtnl_configure_link(peer, ifmp);
221 if (err < 0)
222 goto unregister_network_device;
223
224 /* register first device */
225 if (tb[IFLA_IFNAME])
190 name_assign_type = NET_NAME_USER;
191 } else {
192 snprintf(ifname, IFNAMSIZ, DRV_NAME "%%d");
193 name_assign_type = NET_NAME_ENUM;
194 }
195
196 peer_net = rtnl_link_get_net(net, tbp);
197 if (IS_ERR(peer_net))

--- 20 unchanged lines hidden (view full) ---

218 netif_carrier_off(peer);
219
220 err = rtnl_configure_link(peer, ifmp);
221 if (err < 0)
222 goto unregister_network_device;
223
224 /* register first device */
225 if (tb[IFLA_IFNAME])
226 nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ);
226 nla_strscpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ);
227 else
228 snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d");
229
230 err = register_netdevice(dev);
231 if (err < 0)
232 goto unregister_network_device;
233
234 netif_carrier_off(dev);

--- 74 unchanged lines hidden ---
227 else
228 snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d");
229
230 err = register_netdevice(dev);
231 if (err < 0)
232 goto unregister_network_device;
233
234 netif_carrier_off(dev);

--- 74 unchanged lines hidden ---