Lines Matching full: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()
125 struct netdevsim *ns = netdev_priv(dev); in nsim_start_xmit() local
136 if (!nsim_ipsec_tx(ns, skb)) in nsim_start_xmit()
141 peer_ns = ns; in nsim_start_xmit()
144 peer_ns = rcu_dereference(ns->peer); in nsim_start_xmit()
150 dr = nsim_do_psp(skb, ns, peer_ns, &psp_ext); in nsim_start_xmit()
194 struct netdevsim *ns = netdev_priv(dev); in nsim_change_mtu() local
196 if (ns->xdp.prog && !ns->xdp.prog->aux->xdp_has_frags && in nsim_change_mtu()
213 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_mac() local
214 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_mac()
227 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_vlan() local
228 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_vlan()
242 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_rate() local
243 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_rate()
245 if (nsim_esw_mode_is_switchdev(ns->nsim_dev)) { in nsim_set_vf_rate()
261 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_spoofchk() local
262 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_spoofchk()
273 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_rss_query_en() local
274 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_rss_query_en()
285 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_trust() local
286 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_trust()
298 struct netdevsim *ns = netdev_priv(dev); in nsim_get_vf_config() local
299 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_get_vf_config()
321 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_link_state() local
322 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_link_state()
371 struct netdevsim *ns = netdev_priv(dev); in nsim_setup_tc() local
380 ns, ns, true); in nsim_setup_tc()
389 struct netdevsim *ns = netdev_priv(dev); in nsim_set_features() local
392 return nsim_bpf_disable_tc(ns); in nsim_set_features()
417 struct netdevsim *ns; in nsim_rcv() local
422 ns = netdev_priv(dev); in nsim_rcv()
423 xdp_prog = READ_ONCE(ns->xdp.prog); in nsim_rcv()
486 static int nsim_init_napi(struct netdevsim *ns) in nsim_init_napi() argument
488 struct net_device *dev = ns->netdev; in nsim_init_napi()
493 rq = ns->rq[i]; in nsim_init_napi()
499 rq = ns->rq[i]; in nsim_init_napi()
510 page_pool_destroy(ns->rq[i]->page_pool); in nsim_init_napi()
511 ns->rq[i]->page_pool = NULL; in nsim_init_napi()
515 __netif_napi_del_locked(&ns->rq[i]->napi); in nsim_init_napi()
536 static void nsim_enable_napi(struct netdevsim *ns) in nsim_enable_napi() argument
538 struct net_device *dev = ns->netdev; in nsim_enable_napi()
542 struct nsim_rq *rq = ns->rq[i]; in nsim_enable_napi()
551 struct netdevsim *ns = netdev_priv(dev); in nsim_open() local
557 err = nsim_init_napi(ns); in nsim_open()
561 nsim_enable_napi(ns); in nsim_open()
563 peer = rtnl_dereference(ns->peer); in nsim_open()
572 static void nsim_del_napi(struct netdevsim *ns) in nsim_del_napi() argument
574 struct net_device *dev = ns->netdev; in nsim_del_napi()
578 struct nsim_rq *rq = ns->rq[i]; in nsim_del_napi()
586 page_pool_destroy(ns->rq[i]->page_pool); in nsim_del_napi()
587 ns->rq[i]->page_pool = NULL; in nsim_del_napi()
593 struct netdevsim *ns = netdev_priv(dev); in nsim_stop() local
599 peer = rtnl_dereference(ns->peer); in nsim_stop()
603 nsim_del_napi(ns); in nsim_stop()
752 /* Queue reset mode is controlled by ns->rq_reset_mode.
769 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_mem_alloc() local
772 if (ns->rq_reset_mode > 3) in nsim_queue_mem_alloc()
775 if (ns->rq_reset_mode == 1) { in nsim_queue_mem_alloc()
776 if (!netif_running(ns->netdev)) in nsim_queue_mem_alloc()
778 return nsim_create_page_pool(&qmem->pp, &ns->rq[idx]->napi); in nsim_queue_mem_alloc()
789 if (!ns->rq_reset_mode) in nsim_queue_mem_alloc()
803 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_mem_free() local
807 if (!ns->rq_reset_mode) in nsim_queue_mem_free()
819 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_start() local
823 if (ns->rq_reset_mode == 1) { in nsim_queue_start()
824 ns->rq[idx]->page_pool = qmem->pp; in nsim_queue_start()
825 napi_enable_locked(&ns->rq[idx]->napi); in nsim_queue_start()
832 if (ns->rq_reset_mode == 2) { in nsim_queue_start()
833 netif_napi_del_locked(&ns->rq[idx]->napi); in nsim_queue_start()
836 } else if (ns->rq_reset_mode == 3) { in nsim_queue_start()
839 netif_napi_del_locked(&ns->rq[idx]->napi); in nsim_queue_start()
842 ns->rq[idx] = qmem->rq; in nsim_queue_start()
843 napi_enable_locked(&ns->rq[idx]->napi); in nsim_queue_start()
851 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_stop() local
855 napi_disable_locked(&ns->rq[idx]->napi); in nsim_queue_stop()
857 if (ns->rq_reset_mode == 1) { in nsim_queue_stop()
858 qmem->pp = ns->rq[idx]->page_pool; in nsim_queue_stop()
861 qmem->rq = ns->rq[idx]; in nsim_queue_stop()
879 struct netdevsim *ns = file->private_data; in nsim_qreset_write() local
894 netdev_lock(ns->netdev); in nsim_qreset_write()
895 if (queue >= ns->netdev->real_num_rx_queues) { in nsim_qreset_write()
900 ns->rq_reset_mode = mode; in nsim_qreset_write()
901 ret = netdev_rx_queue_restart(ns->netdev, queue); in nsim_qreset_write()
902 ns->rq_reset_mode = 0; in nsim_qreset_write()
908 netdev_unlock(ns->netdev); in nsim_qreset_write()
922 struct netdevsim *ns = file->private_data; in nsim_pp_hold_read() local
925 if (ns->page) in nsim_pp_hold_read()
935 struct netdevsim *ns = file->private_data; in nsim_pp_hold_write() local
945 if (val == !!ns->page) in nsim_pp_hold_write()
948 if (!netif_running(ns->netdev) && val) { in nsim_pp_hold_write()
951 ns->page = page_pool_dev_alloc_pages(ns->rq[0]->page_pool); in nsim_pp_hold_write()
952 if (!ns->page) in nsim_pp_hold_write()
955 page_pool_put_full_page(pp_page_to_nmdesc(ns->page)->pp, in nsim_pp_hold_write()
956 ns->page, false); in nsim_pp_hold_write()
957 ns->page = NULL; in nsim_pp_hold_write()
998 static int nsim_queue_init(struct netdevsim *ns) in nsim_queue_init() argument
1000 struct net_device *dev = ns->netdev; in nsim_queue_init()
1003 ns->rq = kzalloc_objs(*ns->rq, dev->num_rx_queues, GFP_KERNEL_ACCOUNT); in nsim_queue_init()
1004 if (!ns->rq) in nsim_queue_init()
1008 ns->rq[i] = nsim_queue_alloc(); in nsim_queue_init()
1009 if (!ns->rq[i]) in nsim_queue_init()
1017 kfree(ns->rq[i]); in nsim_queue_init()
1018 kfree(ns->rq); in nsim_queue_init()
1022 static void nsim_queue_uninit(struct netdevsim *ns) in nsim_queue_uninit() argument
1024 struct net_device *dev = ns->netdev; in nsim_queue_uninit()
1028 nsim_queue_free(dev, ns->rq[i]); in nsim_queue_uninit()
1030 kfree(ns->rq); in nsim_queue_uninit()
1031 ns->rq = NULL; in nsim_queue_uninit()
1034 static int nsim_init_netdevsim(struct netdevsim *ns) in nsim_init_netdevsim() argument
1040 phc = mock_phc_create(&ns->nsim_bus_dev->dev); in nsim_init_netdevsim()
1044 ns->phc = phc; in nsim_init_netdevsim()
1045 ns->netdev->netdev_ops = &nsim_netdev_ops; in nsim_init_netdevsim()
1046 ns->netdev->stat_ops = &nsim_stat_ops; in nsim_init_netdevsim()
1047 ns->netdev->queue_mgmt_ops = &nsim_queue_mgmt_ops; in nsim_init_netdevsim()
1048 netdev_lockdep_set_classes(ns->netdev); in nsim_init_netdevsim()
1050 err = nsim_udp_tunnels_info_create(ns->nsim_dev, ns->netdev); in nsim_init_netdevsim()
1055 err = nsim_queue_init(ns); in nsim_init_netdevsim()
1059 err = nsim_bpf_init(ns); in nsim_init_netdevsim()
1063 nsim_macsec_init(ns); in nsim_init_netdevsim()
1064 nsim_ipsec_init(ns); in nsim_init_netdevsim()
1066 err = register_netdevice(ns->netdev); in nsim_init_netdevsim()
1071 err = nsim_psp_init(ns); in nsim_init_netdevsim()
1076 ns->nb.notifier_call = netdev_debug_event; in nsim_init_netdevsim()
1077 if (register_netdevice_notifier_dev_net(ns->netdev, &ns->nb, in nsim_init_netdevsim()
1078 &ns->nn)) in nsim_init_netdevsim()
1079 ns->nb.notifier_call = NULL; in nsim_init_netdevsim()
1086 peer = rtnl_dereference(ns->peer); in nsim_init_netdevsim()
1089 RCU_INIT_POINTER(ns->peer, NULL); in nsim_init_netdevsim()
1090 unregister_netdevice(ns->netdev); in nsim_init_netdevsim()
1092 nsim_ipsec_teardown(ns); in nsim_init_netdevsim()
1093 nsim_macsec_teardown(ns); in nsim_init_netdevsim()
1094 nsim_bpf_uninit(ns); in nsim_init_netdevsim()
1096 nsim_queue_uninit(ns); in nsim_init_netdevsim()
1099 nsim_udp_tunnels_info_destroy(ns->netdev); in nsim_init_netdevsim()
1101 mock_phc_destroy(ns->phc); in nsim_init_netdevsim()
1105 static int nsim_init_netdevsim_vf(struct netdevsim *ns) in nsim_init_netdevsim_vf() argument
1109 ns->netdev->netdev_ops = &nsim_vf_netdev_ops; in nsim_init_netdevsim_vf()
1111 err = register_netdevice(ns->netdev); in nsim_init_netdevsim_vf()
1116 static void nsim_exit_netdevsim(struct netdevsim *ns) in nsim_exit_netdevsim() argument
1118 nsim_udp_tunnels_info_destroy(ns->netdev); in nsim_exit_netdevsim()
1119 mock_phc_destroy(ns->phc); in nsim_exit_netdevsim()
1127 struct netdevsim *ns; in nsim_create() local
1130 dev = alloc_netdev_mq(sizeof(*ns), "eth%d", NET_NAME_UNKNOWN, nsim_setup, in nsim_create()
1139 ns = netdev_priv(dev); in nsim_create()
1140 ns->netdev = dev; in nsim_create()
1141 ns->nsim_dev = nsim_dev; in nsim_create()
1142 ns->nsim_dev_port = nsim_dev_port; in nsim_create()
1143 ns->nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_create()
1144 SET_NETDEV_DEV(dev, &ns->nsim_bus_dev->dev); in nsim_create()
1146 nsim_ethtool_init(ns); in nsim_create()
1148 err = nsim_init_netdevsim(ns); in nsim_create()
1150 err = nsim_init_netdevsim_vf(ns); in nsim_create()
1154 ns->pp_dfs = debugfs_create_file("pp_hold", 0600, nsim_dev_port->ddir, in nsim_create()
1155 ns, &nsim_pp_hold_fops); in nsim_create()
1156 ns->qr_dfs = debugfs_create_file("queue_reset", 0200, in nsim_create()
1157 nsim_dev_port->ddir, ns, in nsim_create()
1159 return ns; in nsim_create()
1166 void nsim_destroy(struct netdevsim *ns) in nsim_destroy() argument
1168 struct net_device *dev = ns->netdev; in nsim_destroy()
1171 debugfs_remove(ns->qr_dfs); in nsim_destroy()
1172 debugfs_remove(ns->pp_dfs); in nsim_destroy()
1174 if (ns->nb.notifier_call) in nsim_destroy()
1175 unregister_netdevice_notifier_dev_net(ns->netdev, &ns->nb, in nsim_destroy()
1176 &ns->nn); in nsim_destroy()
1178 nsim_psp_uninit(ns); in nsim_destroy()
1181 peer = rtnl_dereference(ns->peer); in nsim_destroy()
1184 RCU_INIT_POINTER(ns->peer, NULL); in nsim_destroy()
1186 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) { in nsim_destroy()
1187 nsim_macsec_teardown(ns); in nsim_destroy()
1188 nsim_ipsec_teardown(ns); in nsim_destroy()
1189 nsim_bpf_uninit(ns); in nsim_destroy()
1190 nsim_queue_uninit(ns); in nsim_destroy()
1193 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) in nsim_destroy()
1194 nsim_exit_netdevsim(ns); in nsim_destroy()
1197 if (ns->page) { in nsim_destroy()
1198 page_pool_put_full_page(pp_page_to_nmdesc(ns->page)->pp, in nsim_destroy()
1199 ns->page, false); in nsim_destroy()
1200 ns->page = NULL; in nsim_destroy()