Lines Matching refs:mdev

135 	struct mpls_dev *mdev;  in mpls_stats_inc_outucastpkts()  local
138 mdev = mpls_dev_get(dev); in mpls_stats_inc_outucastpkts()
139 if (mdev) in mpls_stats_inc_outucastpkts()
140 MPLS_INC_STATS_LEN(mdev, skb->len, in mpls_stats_inc_outucastpkts()
352 struct mpls_dev *mdev; in mpls_forward() local
360 mdev = mpls_dev_get(dev); in mpls_forward()
361 if (!mdev) in mpls_forward()
364 MPLS_INC_STATS_LEN(mdev, skb->len, rx_packets, in mpls_forward()
367 if (!mdev->input_enabled) { in mpls_forward()
368 MPLS_INC_STATS(mdev, rx_dropped); in mpls_forward()
389 MPLS_INC_STATS(mdev, rx_noroute); in mpls_forward()
474 MPLS_INC_STATS(mdev, rx_errors); in mpls_forward()
1069 static void mpls_get_stats(struct mpls_dev *mdev, in mpls_get_stats() argument
1081 p = per_cpu_ptr(mdev->stats, i); in mpls_get_stats()
1103 struct mpls_dev *mdev; in mpls_fill_stats_af() local
1106 mdev = mpls_dev_get(dev); in mpls_fill_stats_af()
1107 if (!mdev) in mpls_fill_stats_af()
1117 mpls_get_stats(mdev, stats); in mpls_fill_stats_af()
1124 struct mpls_dev *mdev; in mpls_get_stats_af_size() local
1126 mdev = mpls_dev_get(dev); in mpls_get_stats_af_size()
1127 if (!mdev) in mpls_get_stats_af_size()
1133 static int mpls_netconf_fill_devconf(struct sk_buff *skb, struct mpls_dev *mdev, in mpls_netconf_fill_devconf() argument
1152 if (nla_put_s32(skb, NETCONFA_IFINDEX, mdev->dev->ifindex) < 0) in mpls_netconf_fill_devconf()
1157 READ_ONCE(mdev->input_enabled)) < 0) in mpls_netconf_fill_devconf()
1184 int type, struct mpls_dev *mdev) in mpls_netconf_notify_devconf() argument
1193 err = mpls_netconf_fill_devconf(skb, mdev, 0, 0, event, 0, type); in mpls_netconf_notify_devconf()
1258 struct mpls_dev *mdev; in mpls_netconf_get_devconf() local
1276 mdev = mpls_dev_get(dev); in mpls_netconf_get_devconf()
1277 if (!mdev) in mpls_netconf_get_devconf()
1285 err = mpls_netconf_fill_devconf(skb, mdev, in mpls_netconf_get_devconf()
1309 struct mpls_dev *mdev; in mpls_netconf_dump_devconf() local
1329 mdev = mpls_dev_get(dev); in mpls_netconf_dump_devconf()
1330 if (!mdev) in mpls_netconf_dump_devconf()
1332 err = mpls_netconf_fill_devconf(skb, mdev, in mpls_netconf_dump_devconf()
1356 struct mpls_dev *mdev = ctl->extra1; in mpls_conf_proc() local
1357 int i = (int *)ctl->data - (int *)mdev; in mpls_conf_proc()
1364 NETCONFA_INPUT, mdev); in mpls_conf_proc()
1382 struct mpls_dev *mdev) in mpls_dev_sysctl_register() argument
1398 table[i].data = (char *)mdev + (uintptr_t)table[i].data; in mpls_dev_sysctl_register()
1399 table[i].extra1 = mdev; in mpls_dev_sysctl_register()
1405 mdev->sysctl = register_net_sysctl_sz(net, path, table, table_size); in mpls_dev_sysctl_register()
1406 if (!mdev->sysctl) in mpls_dev_sysctl_register()
1409 mpls_netconf_notify_devconf(net, RTM_NEWNETCONF, NETCONFA_ALL, mdev); in mpls_dev_sysctl_register()
1415 mdev->sysctl = NULL; in mpls_dev_sysctl_register()
1420 struct mpls_dev *mdev) in mpls_dev_sysctl_unregister() argument
1425 if (!mdev->sysctl) in mpls_dev_sysctl_unregister()
1428 table = mdev->sysctl->ctl_table_arg; in mpls_dev_sysctl_unregister()
1429 unregister_net_sysctl_table(mdev->sysctl); in mpls_dev_sysctl_unregister()
1432 mpls_netconf_notify_devconf(net, RTM_DELNETCONF, 0, mdev); in mpls_dev_sysctl_unregister()
1437 struct mpls_dev *mdev; in mpls_add_dev() local
1443 mdev = kzalloc(sizeof(*mdev), GFP_KERNEL); in mpls_add_dev()
1444 if (!mdev) in mpls_add_dev()
1447 mdev->stats = alloc_percpu(struct mpls_pcpu_stats); in mpls_add_dev()
1448 if (!mdev->stats) in mpls_add_dev()
1454 mpls_stats = per_cpu_ptr(mdev->stats, i); in mpls_add_dev()
1458 mdev->dev = dev; in mpls_add_dev()
1460 err = mpls_dev_sysctl_register(dev, mdev); in mpls_add_dev()
1464 rcu_assign_pointer(dev->mpls_ptr, mdev); in mpls_add_dev()
1466 return mdev; in mpls_add_dev()
1469 free_percpu(mdev->stats); in mpls_add_dev()
1470 kfree(mdev); in mpls_add_dev()
1476 struct mpls_dev *mdev = container_of(head, struct mpls_dev, rcu); in mpls_dev_destroy_rcu() local
1478 free_percpu(mdev->stats); in mpls_dev_destroy_rcu()
1479 kfree(mdev); in mpls_dev_destroy_rcu()
1595 struct mpls_dev *mdev; in mpls_dev_notify() local
1600 mdev = mpls_add_dev(dev); in mpls_dev_notify()
1601 if (IS_ERR(mdev)) in mpls_dev_notify()
1602 return notifier_from_errno(PTR_ERR(mdev)); in mpls_dev_notify()
1607 mdev = mpls_dev_get(dev); in mpls_dev_notify()
1608 if (!mdev) in mpls_dev_notify()
1639 mdev = mpls_dev_get(dev); in mpls_dev_notify()
1640 if (mdev) { in mpls_dev_notify()
1641 mpls_dev_sysctl_unregister(dev, mdev); in mpls_dev_notify()
1643 call_rcu(&mdev->rcu, mpls_dev_destroy_rcu); in mpls_dev_notify()
1647 mdev = mpls_dev_get(dev); in mpls_dev_notify()
1648 if (mdev) { in mpls_dev_notify()
1649 mpls_dev_sysctl_unregister(dev, mdev); in mpls_dev_notify()
1650 err = mpls_dev_sysctl_register(dev, mdev); in mpls_dev_notify()