Lines Matching defs:ns

52 	struct netdevsim *ns = netdev_priv(dev);
60 if (!nsim_ipsec_tx(ns, skb))
63 peer_ns = rcu_dereference(ns->peer);
80 u64_stats_update_begin(&ns->syncp);
81 ns->tx_packets++;
82 ns->tx_bytes += len;
83 u64_stats_update_end(&ns->syncp);
90 u64_stats_update_begin(&ns->syncp);
91 ns->tx_dropped++;
92 u64_stats_update_end(&ns->syncp);
102 struct netdevsim *ns = netdev_priv(dev);
104 if (ns->xdp.prog && new_mtu > NSIM_XDP_MAX_MTU)
115 struct netdevsim *ns = netdev_priv(dev);
119 start = u64_stats_fetch_begin(&ns->syncp);
120 stats->tx_bytes = ns->tx_bytes;
121 stats->tx_packets = ns->tx_packets;
122 stats->tx_dropped = ns->tx_dropped;
123 } while (u64_stats_fetch_retry(&ns->syncp, start));
134 struct netdevsim *ns = netdev_priv(dev);
135 struct nsim_dev *nsim_dev = ns->nsim_dev;
148 struct netdevsim *ns = netdev_priv(dev);
149 struct nsim_dev *nsim_dev = ns->nsim_dev;
163 struct netdevsim *ns = netdev_priv(dev);
164 struct nsim_dev *nsim_dev = ns->nsim_dev;
166 if (nsim_esw_mode_is_switchdev(ns->nsim_dev)) {
182 struct netdevsim *ns = netdev_priv(dev);
183 struct nsim_dev *nsim_dev = ns->nsim_dev;
194 struct netdevsim *ns = netdev_priv(dev);
195 struct nsim_dev *nsim_dev = ns->nsim_dev;
206 struct netdevsim *ns = netdev_priv(dev);
207 struct nsim_dev *nsim_dev = ns->nsim_dev;
219 struct netdevsim *ns = netdev_priv(dev);
220 struct nsim_dev *nsim_dev = ns->nsim_dev;
242 struct netdevsim *ns = netdev_priv(dev);
243 struct nsim_dev *nsim_dev = ns->nsim_dev;
292 struct netdevsim *ns = netdev_priv(dev);
301 ns, ns, true);
310 struct netdevsim *ns = netdev_priv(dev);
313 return nsim_bpf_disable_tc(ns);
382 static int nsim_init_napi(struct netdevsim *ns)
384 struct net_device *dev = ns->netdev;
389 rq = &ns->rq[i];
395 rq = &ns->rq[i];
406 page_pool_destroy(ns->rq[i].page_pool);
407 ns->rq[i].page_pool = NULL;
411 __netif_napi_del(&ns->rq[i].napi);
416 static void nsim_enable_napi(struct netdevsim *ns)
418 struct net_device *dev = ns->netdev;
422 struct nsim_rq *rq = &ns->rq[i];
431 struct netdevsim *ns = netdev_priv(dev);
434 err = nsim_init_napi(ns);
438 nsim_enable_napi(ns);
443 static void nsim_del_napi(struct netdevsim *ns)
445 struct net_device *dev = ns->netdev;
449 struct nsim_rq *rq = &ns->rq[i];
457 page_pool_destroy(ns->rq[i].page_pool);
458 ns->rq[i].page_pool = NULL;
464 struct netdevsim *ns = netdev_priv(dev);
468 peer = rtnl_dereference(ns->peer);
472 nsim_del_napi(ns);
562 struct netdevsim *ns = file->private_data;
565 if (ns->page)
575 struct netdevsim *ns = file->private_data;
585 if (val == !!ns->page)
588 if (!netif_running(ns->netdev) && val) {
591 ns->page = page_pool_dev_alloc_pages(ns->rq[0].page_pool);
592 if (!ns->page)
595 page_pool_put_full_page(ns->page->pp, ns->page, false);
596 ns->page = NULL;
631 static int nsim_queue_init(struct netdevsim *ns)
633 struct net_device *dev = ns->netdev;
636 ns->rq = kvcalloc(dev->num_rx_queues, sizeof(*ns->rq),
638 if (!ns->rq)
642 skb_queue_head_init(&ns->rq[i].skb_queue);
647 static void nsim_queue_free(struct netdevsim *ns)
649 struct net_device *dev = ns->netdev;
653 skb_queue_purge_reason(&ns->rq[i].skb_queue,
656 kvfree(ns->rq);
657 ns->rq = NULL;
660 static int nsim_init_netdevsim(struct netdevsim *ns)
665 phc = mock_phc_create(&ns->nsim_bus_dev->dev);
669 ns->phc = phc;
670 ns->netdev->netdev_ops = &nsim_netdev_ops;
671 ns->netdev->stat_ops = &nsim_stat_ops;
673 err = nsim_udp_tunnels_info_create(ns->nsim_dev, ns->netdev);
678 err = nsim_queue_init(ns);
682 err = nsim_bpf_init(ns);
686 nsim_macsec_init(ns);
687 nsim_ipsec_init(ns);
689 err = register_netdevice(ns->netdev);
696 nsim_ipsec_teardown(ns);
697 nsim_macsec_teardown(ns);
698 nsim_bpf_uninit(ns);
700 nsim_queue_free(ns);
703 nsim_udp_tunnels_info_destroy(ns->netdev);
705 mock_phc_destroy(ns->phc);
709 static int nsim_init_netdevsim_vf(struct netdevsim *ns)
713 ns->netdev->netdev_ops = &nsim_vf_netdev_ops;
715 err = register_netdevice(ns->netdev);
720 static void nsim_exit_netdevsim(struct netdevsim *ns)
722 nsim_udp_tunnels_info_destroy(ns->netdev);
723 mock_phc_destroy(ns->phc);
730 struct netdevsim *ns;
733 dev = alloc_netdev_mq(sizeof(*ns), "eth%d", NET_NAME_UNKNOWN, nsim_setup,
739 ns = netdev_priv(dev);
740 ns->netdev = dev;
741 u64_stats_init(&ns->syncp);
742 ns->nsim_dev = nsim_dev;
743 ns->nsim_dev_port = nsim_dev_port;
744 ns->nsim_bus_dev = nsim_dev->nsim_bus_dev;
745 SET_NETDEV_DEV(dev, &ns->nsim_bus_dev->dev);
747 nsim_ethtool_init(ns);
749 err = nsim_init_netdevsim(ns);
751 err = nsim_init_netdevsim_vf(ns);
755 ns->pp_dfs = debugfs_create_file("pp_hold", 0600, nsim_dev_port->ddir,
756 ns, &nsim_pp_hold_fops);
758 return ns;
765 void nsim_destroy(struct netdevsim *ns)
767 struct net_device *dev = ns->netdev;
770 debugfs_remove(ns->pp_dfs);
773 peer = rtnl_dereference(ns->peer);
776 RCU_INIT_POINTER(ns->peer, NULL);
778 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) {
779 nsim_macsec_teardown(ns);
780 nsim_ipsec_teardown(ns);
781 nsim_bpf_uninit(ns);
782 nsim_queue_free(ns);
785 if (nsim_dev_port_is_pf(ns->nsim_dev_port))
786 nsim_exit_netdevsim(ns);
789 if (ns->page) {
790 page_pool_put_full_page(ns->page->pp, ns->page, false);
791 ns->page = NULL;