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()
122 struct netdevsim *ns = netdev_priv(dev); in nsim_start_xmit() local
133 if (!nsim_ipsec_tx(ns, skb)) in nsim_start_xmit()
138 peer_ns = ns; in nsim_start_xmit()
141 peer_ns = rcu_dereference(ns->peer); in nsim_start_xmit()
147 dr = nsim_do_psp(skb, ns, peer_ns, &psp_ext); in nsim_start_xmit()
191 struct netdevsim *ns = netdev_priv(dev); in nsim_change_mtu() local
193 if (ns->xdp.prog && !ns->xdp.prog->aux->xdp_has_frags && in nsim_change_mtu()
210 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_mac() local
211 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_mac()
224 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_vlan() local
225 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_vlan()
239 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_rate() local
240 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_rate()
242 if (nsim_esw_mode_is_switchdev(ns->nsim_dev)) { in nsim_set_vf_rate()
258 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_spoofchk() local
259 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_spoofchk()
270 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_rss_query_en() local
271 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_rss_query_en()
282 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_trust() local
283 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_trust()
295 struct netdevsim *ns = netdev_priv(dev); in nsim_get_vf_config() local
296 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_get_vf_config()
318 struct netdevsim *ns = netdev_priv(dev); in nsim_set_vf_link_state() local
319 struct nsim_dev *nsim_dev = ns->nsim_dev; in nsim_set_vf_link_state()
368 struct netdevsim *ns = netdev_priv(dev); in nsim_setup_tc() local
377 ns, ns, true); in nsim_setup_tc()
386 struct netdevsim *ns = netdev_priv(dev); in nsim_set_features() local
389 return nsim_bpf_disable_tc(ns); in nsim_set_features()
414 struct netdevsim *ns; in nsim_rcv() local
419 ns = netdev_priv(dev); in nsim_rcv()
420 xdp_prog = READ_ONCE(ns->xdp.prog); in nsim_rcv()
483 static int nsim_init_napi(struct netdevsim *ns) in nsim_init_napi() argument
485 struct net_device *dev = ns->netdev; in nsim_init_napi()
490 rq = ns->rq[i]; in nsim_init_napi()
496 rq = ns->rq[i]; in nsim_init_napi()
507 page_pool_destroy(ns->rq[i]->page_pool); in nsim_init_napi()
508 ns->rq[i]->page_pool = NULL; in nsim_init_napi()
512 __netif_napi_del_locked(&ns->rq[i]->napi); in nsim_init_napi()
533 static void nsim_enable_napi(struct netdevsim *ns) in nsim_enable_napi() argument
535 struct net_device *dev = ns->netdev; in nsim_enable_napi()
539 struct nsim_rq *rq = ns->rq[i]; in nsim_enable_napi()
548 struct netdevsim *ns = netdev_priv(dev); in nsim_open() local
554 err = nsim_init_napi(ns); in nsim_open()
558 nsim_enable_napi(ns); in nsim_open()
560 peer = rtnl_dereference(ns->peer); in nsim_open()
569 static void nsim_del_napi(struct netdevsim *ns) in nsim_del_napi() argument
571 struct net_device *dev = ns->netdev; in nsim_del_napi()
575 struct nsim_rq *rq = ns->rq[i]; in nsim_del_napi()
583 page_pool_destroy(ns->rq[i]->page_pool); in nsim_del_napi()
584 ns->rq[i]->page_pool = NULL; in nsim_del_napi()
590 struct netdevsim *ns = netdev_priv(dev); in nsim_stop() local
596 peer = rtnl_dereference(ns->peer); in nsim_stop()
600 nsim_del_napi(ns); in nsim_stop()
764 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_mem_alloc() local
767 if (ns->rq_reset_mode > 3) in nsim_queue_mem_alloc()
770 if (ns->rq_reset_mode == 1) { in nsim_queue_mem_alloc()
771 if (!netif_running(ns->netdev)) in nsim_queue_mem_alloc()
773 return nsim_create_page_pool(&qmem->pp, &ns->rq[idx]->napi); in nsim_queue_mem_alloc()
784 if (!ns->rq_reset_mode) in nsim_queue_mem_alloc()
798 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_mem_free() local
802 if (!ns->rq_reset_mode) in nsim_queue_mem_free()
813 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_start() local
817 if (ns->rq_reset_mode == 1) { in nsim_queue_start()
818 ns->rq[idx]->page_pool = qmem->pp; in nsim_queue_start()
819 napi_enable_locked(&ns->rq[idx]->napi); in nsim_queue_start()
826 if (ns->rq_reset_mode == 2) { in nsim_queue_start()
827 netif_napi_del_locked(&ns->rq[idx]->napi); in nsim_queue_start()
830 } else if (ns->rq_reset_mode == 3) { in nsim_queue_start()
833 netif_napi_del_locked(&ns->rq[idx]->napi); in nsim_queue_start()
836 ns->rq[idx] = qmem->rq; in nsim_queue_start()
837 napi_enable_locked(&ns->rq[idx]->napi); in nsim_queue_start()
845 struct netdevsim *ns = netdev_priv(dev); in nsim_queue_stop() local
849 napi_disable_locked(&ns->rq[idx]->napi); in nsim_queue_stop()
851 if (ns->rq_reset_mode == 1) { in nsim_queue_stop()
852 qmem->pp = ns->rq[idx]->page_pool; in nsim_queue_stop()
855 qmem->rq = ns->rq[idx]; in nsim_queue_stop()
873 struct netdevsim *ns = file->private_data; in nsim_qreset_write() local
888 netdev_lock(ns->netdev); in nsim_qreset_write()
889 if (queue >= ns->netdev->real_num_rx_queues) { in nsim_qreset_write()
894 ns->rq_reset_mode = mode; in nsim_qreset_write()
895 ret = netdev_rx_queue_restart(ns->netdev, queue); in nsim_qreset_write()
896 ns->rq_reset_mode = 0; in nsim_qreset_write()
902 netdev_unlock(ns->netdev); in nsim_qreset_write()
916 struct netdevsim *ns = file->private_data; in nsim_pp_hold_read() local
919 if (ns->page) in nsim_pp_hold_read()
929 struct netdevsim *ns = file->private_data; in nsim_pp_hold_write() local
939 if (val == !!ns->page) in nsim_pp_hold_write()
942 if (!netif_running(ns->netdev) && val) { in nsim_pp_hold_write()
945 ns->page = page_pool_dev_alloc_pages(ns->rq[0]->page_pool); in nsim_pp_hold_write()
946 if (!ns->page) in nsim_pp_hold_write()
949 page_pool_put_full_page(pp_page_to_nmdesc(ns->page)->pp, in nsim_pp_hold_write()
950 ns->page, false); in nsim_pp_hold_write()
951 ns->page = NULL; in nsim_pp_hold_write()
992 static int nsim_queue_init(struct netdevsim *ns) in nsim_queue_init() argument
994 struct net_device *dev = ns->netdev; in nsim_queue_init()
997 ns->rq = kcalloc(dev->num_rx_queues, sizeof(*ns->rq), in nsim_queue_init()
999 if (!ns->rq) in nsim_queue_init()
1003 ns->rq[i] = nsim_queue_alloc(); in nsim_queue_init()
1004 if (!ns->rq[i]) in nsim_queue_init()
1012 kfree(ns->rq[i]); in nsim_queue_init()
1013 kfree(ns->rq); in nsim_queue_init()
1017 static void nsim_queue_uninit(struct netdevsim *ns) in nsim_queue_uninit() argument
1019 struct net_device *dev = ns->netdev; in nsim_queue_uninit()
1023 nsim_queue_free(dev, ns->rq[i]); in nsim_queue_uninit()
1025 kfree(ns->rq); in nsim_queue_uninit()
1026 ns->rq = NULL; in nsim_queue_uninit()
1029 static int nsim_init_netdevsim(struct netdevsim *ns) in nsim_init_netdevsim() argument
1035 phc = mock_phc_create(&ns->nsim_bus_dev->dev); in nsim_init_netdevsim()
1039 ns->phc = phc; in nsim_init_netdevsim()
1040 ns->netdev->netdev_ops = &nsim_netdev_ops; in nsim_init_netdevsim()
1041 ns->netdev->stat_ops = &nsim_stat_ops; in nsim_init_netdevsim()
1042 ns->netdev->queue_mgmt_ops = &nsim_queue_mgmt_ops; in nsim_init_netdevsim()
1043 netdev_lockdep_set_classes(ns->netdev); in nsim_init_netdevsim()
1045 err = nsim_udp_tunnels_info_create(ns->nsim_dev, ns->netdev); in nsim_init_netdevsim()
1050 err = nsim_queue_init(ns); in nsim_init_netdevsim()
1054 err = nsim_bpf_init(ns); in nsim_init_netdevsim()
1058 nsim_macsec_init(ns); in nsim_init_netdevsim()
1059 nsim_ipsec_init(ns); in nsim_init_netdevsim()
1061 err = register_netdevice(ns->netdev); in nsim_init_netdevsim()
1066 err = nsim_psp_init(ns); in nsim_init_netdevsim()
1071 ns->nb.notifier_call = netdev_debug_event; in nsim_init_netdevsim()
1072 if (register_netdevice_notifier_dev_net(ns->netdev, &ns->nb, in nsim_init_netdevsim()
1073 &ns->nn)) in nsim_init_netdevsim()
1074 ns->nb.notifier_call = NULL; in nsim_init_netdevsim()
1081 peer = rtnl_dereference(ns->peer); in nsim_init_netdevsim()
1084 RCU_INIT_POINTER(ns->peer, NULL); in nsim_init_netdevsim()
1085 unregister_netdevice(ns->netdev); in nsim_init_netdevsim()
1087 nsim_ipsec_teardown(ns); in nsim_init_netdevsim()
1088 nsim_macsec_teardown(ns); in nsim_init_netdevsim()
1089 nsim_bpf_uninit(ns); in nsim_init_netdevsim()
1091 nsim_queue_uninit(ns); in nsim_init_netdevsim()
1094 nsim_udp_tunnels_info_destroy(ns->netdev); in nsim_init_netdevsim()
1096 mock_phc_destroy(ns->phc); in nsim_init_netdevsim()
1100 static int nsim_init_netdevsim_vf(struct netdevsim *ns) in nsim_init_netdevsim_vf() argument
1104 ns->netdev->netdev_ops = &nsim_vf_netdev_ops; in nsim_init_netdevsim_vf()
1106 err = register_netdevice(ns->netdev); in nsim_init_netdevsim_vf()
1111 static void nsim_exit_netdevsim(struct netdevsim *ns) in nsim_exit_netdevsim() argument
1113 nsim_udp_tunnels_info_destroy(ns->netdev); in nsim_exit_netdevsim()
1114 mock_phc_destroy(ns->phc); in nsim_exit_netdevsim()
1122 struct netdevsim *ns; in nsim_create() local
1125 dev = alloc_netdev_mq(sizeof(*ns), "eth%d", NET_NAME_UNKNOWN, nsim_setup, in nsim_create()
1134 ns = netdev_priv(dev); in nsim_create()
1135 ns->netdev = dev; in nsim_create()
1136 ns->nsim_dev = nsim_dev; in nsim_create()
1137 ns->nsim_dev_port = nsim_dev_port; in nsim_create()
1138 ns->nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_create()
1139 SET_NETDEV_DEV(dev, &ns->nsim_bus_dev->dev); in nsim_create()
1141 nsim_ethtool_init(ns); in nsim_create()
1143 err = nsim_init_netdevsim(ns); in nsim_create()
1145 err = nsim_init_netdevsim_vf(ns); in nsim_create()
1149 ns->pp_dfs = debugfs_create_file("pp_hold", 0600, nsim_dev_port->ddir, in nsim_create()
1150 ns, &nsim_pp_hold_fops); in nsim_create()
1151 ns->qr_dfs = debugfs_create_file("queue_reset", 0200, in nsim_create()
1152 nsim_dev_port->ddir, ns, in nsim_create()
1154 return ns; in nsim_create()
1161 void nsim_destroy(struct netdevsim *ns) in nsim_destroy() argument
1163 struct net_device *dev = ns->netdev; in nsim_destroy()
1166 debugfs_remove(ns->qr_dfs); in nsim_destroy()
1167 debugfs_remove(ns->pp_dfs); in nsim_destroy()
1169 if (ns->nb.notifier_call) in nsim_destroy()
1170 unregister_netdevice_notifier_dev_net(ns->netdev, &ns->nb, in nsim_destroy()
1171 &ns->nn); in nsim_destroy()
1173 nsim_psp_uninit(ns); in nsim_destroy()
1176 peer = rtnl_dereference(ns->peer); in nsim_destroy()
1179 RCU_INIT_POINTER(ns->peer, NULL); in nsim_destroy()
1181 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) { in nsim_destroy()
1182 nsim_macsec_teardown(ns); in nsim_destroy()
1183 nsim_ipsec_teardown(ns); in nsim_destroy()
1184 nsim_bpf_uninit(ns); in nsim_destroy()
1185 nsim_queue_uninit(ns); in nsim_destroy()
1188 if (nsim_dev_port_is_pf(ns->nsim_dev_port)) in nsim_destroy()
1189 nsim_exit_netdevsim(ns); in nsim_destroy()
1192 if (ns->page) { in nsim_destroy()
1193 page_pool_put_full_page(pp_page_to_nmdesc(ns->page)->pp, in nsim_destroy()
1194 ns->page, false); in nsim_destroy()
1195 ns->page = NULL; in nsim_destroy()