Lines Matching defs:hwsdev

25 	struct nsim_dev_hwstats_netdev *hwsdev;
32 list_for_each_entry(hwsdev, hwsdev_list, list) {
33 if (hwsdev->enabled) {
34 hwsdev->stats.rx_packets += 1;
35 hwsdev->stats.tx_packets += 2;
36 hwsdev->stats.rx_bytes += 100;
37 hwsdev->stats.tx_bytes += 300;
59 struct nsim_dev_hwstats_netdev *hwsdev;
61 list_for_each_entry(hwsdev, hwsdev_list, list) {
62 if (hwsdev->netdev->ifindex == ifindex)
63 return hwsdev;
69 static int nsim_dev_hwsdev_enable(struct nsim_dev_hwstats_netdev *hwsdev,
72 if (hwsdev->fail_enable) {
73 hwsdev->fail_enable = false;
78 hwsdev->enabled = true;
82 static void nsim_dev_hwsdev_disable(struct nsim_dev_hwstats_netdev *hwsdev)
84 hwsdev->enabled = false;
85 memset(&hwsdev->stats, 0, sizeof(hwsdev->stats));
89 nsim_dev_hwsdev_report_delta(struct nsim_dev_hwstats_netdev *hwsdev,
92 netdev_offload_xstats_report_delta(info->report_delta, &hwsdev->stats);
93 memset(&hwsdev->stats, 0, sizeof(hwsdev->stats));
98 nsim_dev_hwsdev_report_used(struct nsim_dev_hwstats_netdev *hwsdev,
101 if (hwsdev->enabled)
110 struct nsim_dev_hwstats_netdev *hwsdev;
121 hwsdev = nsim_dev_hwslist_find_hwsdev(hwsdev_list, dev->ifindex);
122 if (!hwsdev)
127 err = nsim_dev_hwsdev_enable(hwsdev, info->info.extack);
130 nsim_dev_hwsdev_disable(hwsdev);
133 nsim_dev_hwsdev_report_used(hwsdev, info);
136 err = nsim_dev_hwsdev_report_delta(hwsdev, info);
145 static void nsim_dev_hwsdev_fini(struct nsim_dev_hwstats_netdev *hwsdev)
147 dev_put(hwsdev->netdev);
148 kfree(hwsdev);
156 struct nsim_dev_hwstats_netdev *hwsdev;
163 hwsdev = nsim_dev_hwslist_find_hwsdev(hwsdev_list, dev->ifindex);
164 if (!hwsdev)
167 list_del(&hwsdev->list);
168 nsim_dev_hwsdev_fini(hwsdev);
220 struct nsim_dev_hwstats_netdev *hwsdev;
232 hwsdev = nsim_dev_hwslist_find_hwsdev(hwsdev_list, ifindex);
233 if (hwsdev)
242 hwsdev = kzalloc(sizeof(*hwsdev), GFP_KERNEL);
243 if (!hwsdev) {
248 hwsdev->netdev = netdev;
249 list_add_tail(&hwsdev->list, hwsdev_list);
253 nsim_dev_hwsdev_enable(hwsdev, NULL);
276 struct nsim_dev_hwstats_netdev *hwsdev;
281 hwsdev = nsim_dev_hwslist_find_hwsdev(hwsdev_list, ifindex);
282 if (hwsdev)
283 list_del(&hwsdev->list);
286 if (!hwsdev) {
291 if (netdev_offload_xstats_enabled(hwsdev->netdev, type)) {
292 netdev_offload_xstats_push_delta(hwsdev->netdev, type,
293 &hwsdev->stats);
294 rtnl_offload_xstats_notify(hwsdev->netdev);
296 nsim_dev_hwsdev_fini(hwsdev);
309 struct nsim_dev_hwstats_netdev *hwsdev;
314 hwsdev = nsim_dev_hwslist_find_hwsdev(hwsdev_list, ifindex);
315 if (!hwsdev) {
320 hwsdev->fail_enable = true;
458 struct nsim_dev_hwstats_netdev *hwsdev, *tmp;
466 list_for_each_entry_safe(hwsdev, tmp, hwsdev_list, list) {
467 list_del(&hwsdev->list);
468 nsim_dev_hwsdev_fini(hwsdev);