Lines Matching refs:ns

42 	struct netdevsim *ns = netdev_priv(dev);  in nsim_start_peer_tx_queue()  local
50 peer_ns = rcu_dereference(ns->peer); in nsim_start_peer_tx_queue()
114 struct netdevsim *ns = netdev_priv(dev); in nsim_start_xmit() local
123 if (!nsim_ipsec_tx(ns, skb)) in nsim_start_xmit()
126 peer_ns = rcu_dereference(ns->peer); in nsim_start_xmit()
168 struct netdevsim *ns = netdev_priv(dev); in nsim_change_mtu() local
170 if (ns->xdp.prog && !ns->xdp.prog->aux->xdp_has_frags && in nsim_change_mtu()
187 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_mac() local
188 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_mac()
201 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_vlan() local
202 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_vlan()
216 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_rate() local
217 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_rate()
219 if (nsim_esw_mode_is_switchdev(ns->nsim_dev)) { in nsim_set_vf_rate()
235 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_spoofchk() local
236 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_spoofchk()
247 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_rss_query_en() local
248 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_rss_query_en()
259 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_trust() local
260 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_trust()
272 struct netdevsim *ns = netdev_priv(dev); in nsim_get_vf_config() local
273 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_get_vf_config()
295 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_link_state() local
296 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_link_state()
345 struct netdevsim *ns = netdev_priv(dev); in nsim_setup_tc() local
354 ns, ns, true); in nsim_setup_tc()
363 struct netdevsim *ns = netdev_priv(dev); in nsim_set_features() local
366 return nsim_bpf_disable_tc(ns); in nsim_set_features()
391 struct netdevsim *ns; in nsim_rcv() local
396 ns = netdev_priv(dev); in nsim_rcv()
397 xdp_prog = READ_ONCE(ns->xdp.prog); in nsim_rcv()
465 static int nsim_init_napi(struct netdevsim *ns) in nsim_init_napi() argument
467 struct net_device *dev = ns->netdev; in nsim_init_napi()
472 rq = ns->rq[i]; in nsim_init_napi()
478 rq = ns->rq[i]; in nsim_init_napi()
489 page_pool_destroy(ns->rq[i]->page_pool); in nsim_init_napi()
490 ns->rq[i]->page_pool = NULL; in nsim_init_napi()
494 __netif_napi_del_locked(&ns->rq[i]->napi); in nsim_init_napi()
515 static void nsim_enable_napi(struct netdevsim *ns) in nsim_enable_napi() argument
517 struct net_device *dev = ns->netdev; in nsim_enable_napi()
521 struct nsim_rq *rq = ns->rq[i]; in nsim_enable_napi()
530 struct netdevsim *ns = netdev_priv(dev); in nsim_open() local
535 err = nsim_init_napi(ns); in nsim_open()
539 nsim_enable_napi(ns); in nsim_open()
544 static void nsim_del_napi(struct netdevsim *ns) in nsim_del_napi() argument
546 struct net_device *dev = ns->netdev; in nsim_del_napi()
550 struct nsim_rq *rq = ns->rq[i]; in nsim_del_napi()
558 page_pool_destroy(ns->rq[i]->page_pool); in nsim_del_napi()
559 ns->rq[i]->page_pool = NULL; in nsim_del_napi()
565 struct netdevsim *ns = netdev_priv(dev); in nsim_stop() local
571 peer = rtnl_dereference(ns->peer); in nsim_stop()
575 nsim_del_napi(ns); in nsim_stop()
739 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_mem_alloc() local
742 if (ns->rq_reset_mode > 3) in nsim_queue_mem_alloc()
745 if (ns->rq_reset_mode == 1) { in nsim_queue_mem_alloc()
746 if (!netif_running(ns->netdev)) in nsim_queue_mem_alloc()
748 return nsim_create_page_pool(&qmem->pp, &ns->rq[idx]->napi); in nsim_queue_mem_alloc()
759 if (!ns->rq_reset_mode) in nsim_queue_mem_alloc()
773 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_mem_free() local
777 if (!ns->rq_reset_mode) in nsim_queue_mem_free()
788 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_start() local
792 if (ns->rq_reset_mode == 1) { in nsim_queue_start()
793 ns->rq[idx]->page_pool = qmem->pp; in nsim_queue_start()
794 napi_enable_locked(&ns->rq[idx]->napi); in nsim_queue_start()
801 if (ns->rq_reset_mode == 2) { in nsim_queue_start()
802 netif_napi_del_locked(&ns->rq[idx]->napi); in nsim_queue_start()
805 } else if (ns->rq_reset_mode == 3) { in nsim_queue_start()
808 netif_napi_del_locked(&ns->rq[idx]->napi); in nsim_queue_start()
811 ns->rq[idx] = qmem->rq; in nsim_queue_start()
812 napi_enable_locked(&ns->rq[idx]->napi); in nsim_queue_start()
820 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_stop() local
824 napi_disable_locked(&ns->rq[idx]->napi); in nsim_queue_stop()
826 if (ns->rq_reset_mode == 1) { in nsim_queue_stop()
827 qmem->pp = ns->rq[idx]->page_pool; in nsim_queue_stop()
830 qmem->rq = ns->rq[idx]; in nsim_queue_stop()
848 struct netdevsim *ns = file->private_data; in nsim_qreset_write() local
863 netdev_lock(ns->netdev); in nsim_qreset_write()
864 if (queue >= ns->netdev->real_num_rx_queues) { in nsim_qreset_write()
869 ns->rq_reset_mode = mode; in nsim_qreset_write()
870 ret = netdev_rx_queue_restart(ns->netdev, queue); in nsim_qreset_write()
871 ns->rq_reset_mode = 0; in nsim_qreset_write()
877 netdev_unlock(ns->netdev); in nsim_qreset_write()
891 struct netdevsim *ns = file->private_data; in nsim_pp_hold_read() local
894 if (ns->page) in nsim_pp_hold_read()
904 struct netdevsim *ns = file->private_data; in nsim_pp_hold_write() local
914 if (val == !!ns->page) in nsim_pp_hold_write()
917 if (!netif_running(ns->netdev) && val) { in nsim_pp_hold_write()
920 ns->page = page_pool_dev_alloc_pages(ns->rq[0]->page_pool); in nsim_pp_hold_write()
921 if (!ns->page) in nsim_pp_hold_write()
924 page_pool_put_full_page(pp_page_to_nmdesc(ns->page)->pp, in nsim_pp_hold_write()
925 ns->page, false); in nsim_pp_hold_write()
926 ns->page = NULL; in nsim_pp_hold_write()
966 static int nsim_queue_init(struct netdevsim *ns) in nsim_queue_init() argument
968 struct net_device *dev = ns->netdev; in nsim_queue_init()
971 ns->rq = kcalloc(dev->num_rx_queues, sizeof(*ns->rq), in nsim_queue_init()
973 if (!ns->rq) in nsim_queue_init()
977 ns->rq[i] = nsim_queue_alloc(); in nsim_queue_init()
978 if (!ns->rq[i]) in nsim_queue_init()
986 kfree(ns->rq[i]); in nsim_queue_init()
987 kfree(ns->rq); in nsim_queue_init()
991 static void nsim_queue_uninit(struct netdevsim *ns) in nsim_queue_uninit() argument
993 struct net_device *dev = ns->netdev; in nsim_queue_uninit()
997 nsim_queue_free(dev, ns->rq[i]); in nsim_queue_uninit()
999 kfree(ns->rq); in nsim_queue_uninit()
1000 ns->rq = NULL; in nsim_queue_uninit()
1003 static int nsim_init_netdevsim(struct netdevsim *ns) in nsim_init_netdevsim() argument
1008 phc = mock_phc_create(&ns->nsim_bus_dev->dev); in nsim_init_netdevsim()
1012 ns->phc = phc; in nsim_init_netdevsim()
1013 ns->netdev->netdev_ops = &nsim_netdev_ops; in nsim_init_netdevsim()
1014 ns->netdev->stat_ops = &nsim_stat_ops; in nsim_init_netdevsim()
1015 ns->netdev->queue_mgmt_ops = &nsim_queue_mgmt_ops; in nsim_init_netdevsim()
1016 netdev_lockdep_set_classes(ns->netdev); in nsim_init_netdevsim()
1018 err = nsim_udp_tunnels_info_create(ns->nsim_dev, ns->netdev); in nsim_init_netdevsim()
1023 err = nsim_queue_init(ns); in nsim_init_netdevsim()
1027 err = nsim_bpf_init(ns); in nsim_init_netdevsim()
1031 nsim_macsec_init(ns); in nsim_init_netdevsim()
1032 nsim_ipsec_init(ns); in nsim_init_netdevsim()
1034 err = register_netdevice(ns->netdev); in nsim_init_netdevsim()
1040 ns->nb.notifier_call = netdev_debug_event; in nsim_init_netdevsim()
1041 if (register_netdevice_notifier_dev_net(ns->netdev, &ns->nb, in nsim_init_netdevsim()
1042 &ns->nn)) in nsim_init_netdevsim()
1043 ns->nb.notifier_call = NULL; in nsim_init_netdevsim()
1049 nsim_ipsec_teardown(ns); in nsim_init_netdevsim()
1050 nsim_macsec_teardown(ns); in nsim_init_netdevsim()
1051 nsim_bpf_uninit(ns); in nsim_init_netdevsim()
1053 nsim_queue_uninit(ns); in nsim_init_netdevsim()
1056 nsim_udp_tunnels_info_destroy(ns->netdev); in nsim_init_netdevsim()
1058 mock_phc_destroy(ns->phc); in nsim_init_netdevsim()
1062 static int nsim_init_netdevsim_vf(struct netdevsim *ns) in nsim_init_netdevsim_vf() argument
1066 ns->netdev->netdev_ops = &nsim_vf_netdev_ops; in nsim_init_netdevsim_vf()
1068 err = register_netdevice(ns->netdev); in nsim_init_netdevsim_vf()
1073 static void nsim_exit_netdevsim(struct netdevsim *ns) in nsim_exit_netdevsim() argument
1075 nsim_udp_tunnels_info_destroy(ns->netdev); in nsim_exit_netdevsim()
1076 mock_phc_destroy(ns->phc); in nsim_exit_netdevsim()
1084 struct netdevsim *ns; in nsim_create() local
1087 dev = alloc_netdev_mq(sizeof(*ns), "eth%d", NET_NAME_UNKNOWN, nsim_setup, in nsim_create()
1096 ns = netdev_priv(dev); in nsim_create()
1097 ns->netdev = dev; in nsim_create()
1098 ns->nsim_dev = nsim_dev; in nsim_create()
1099 ns->nsim_dev_port = nsim_dev_port; in nsim_create()
1100 ns->nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_create()
1101 SET_NETDEV_DEV(dev, &ns->nsim_bus_dev->dev); in nsim_create()
1103 nsim_ethtool_init(ns); in nsim_create()
1105 err = nsim_init_netdevsim(ns); in nsim_create()
1107 err = nsim_init_netdevsim_vf(ns); in nsim_create()
1111 ns->pp_dfs = debugfs_create_file("pp_hold", 0600, nsim_dev_port->ddir, in nsim_create()
1112 ns, &nsim_pp_hold_fops); in nsim_create()
1113 ns->qr_dfs = debugfs_create_file("queue_reset", 0200, in nsim_create()
1114 nsim_dev_port->ddir, ns, in nsim_create()
1116 return ns; in nsim_create()
1123 void nsim_destroy(struct netdevsim *ns) in nsim_destroy() argument
1125 struct net_device *dev = ns->netdev; in nsim_destroy()
1128 debugfs_remove(ns->qr_dfs); in nsim_destroy()
1129 debugfs_remove(ns->pp_dfs); in nsim_destroy()
1131 if (ns->nb.notifier_call) in nsim_destroy()
1132 unregister_netdevice_notifier_dev_net(ns->netdev, &ns->nb, in nsim_destroy()
1133 &ns->nn); in nsim_destroy()
1136 peer = rtnl_dereference(ns->peer); in nsim_destroy()
1139 RCU_INIT_POINTER(ns->peer, NULL); in nsim_destroy()
1141 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) { in nsim_destroy()
1142 nsim_macsec_teardown(ns); in nsim_destroy()
1143 nsim_ipsec_teardown(ns); in nsim_destroy()
1144 nsim_bpf_uninit(ns); in nsim_destroy()
1145 nsim_queue_uninit(ns); in nsim_destroy()
1148 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) in nsim_destroy()
1149 nsim_exit_netdevsim(ns); in nsim_destroy()
1152 if (ns->page) { in nsim_destroy()
1153 page_pool_put_full_page(pp_page_to_nmdesc(ns->page)->pp, in nsim_destroy()
1154 ns->page, false); in nsim_destroy()
1155 ns->page = NULL; in nsim_destroy()