Lines Matching refs:netdev

27 nfp_repr_inc_tx_stats(struct net_device *netdev, unsigned int len,
30 struct nfp_repr *repr = netdev_priv(netdev);
46 void nfp_repr_inc_rx_stats(struct net_device *netdev, unsigned int len)
48 struct nfp_repr *repr = netdev_priv(netdev);
90 nfp_repr_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
92 struct nfp_repr *repr = netdev_priv(netdev);
124 nfp_repr_get_host_stats64(const struct net_device *netdev,
127 struct nfp_repr *repr = netdev_priv(netdev);
167 static int nfp_repr_change_mtu(struct net_device *netdev, int new_mtu)
169 struct nfp_repr *repr = netdev_priv(netdev);
172 err = nfp_app_check_mtu(repr->app, netdev, new_mtu);
176 err = nfp_app_repr_change_mtu(repr->app, netdev, new_mtu);
180 netdev->mtu = new_mtu;
185 static netdev_tx_t nfp_repr_xmit(struct sk_buff *skb, struct net_device *netdev)
187 struct nfp_repr *repr = netdev_priv(netdev);
197 nfp_repr_inc_tx_stats(netdev, len, ret);
202 static int nfp_repr_stop(struct net_device *netdev)
204 struct nfp_repr *repr = netdev_priv(netdev);
211 nfp_port_configure(netdev, false);
215 static int nfp_repr_open(struct net_device *netdev)
217 struct nfp_repr *repr = netdev_priv(netdev);
220 err = nfp_port_configure(netdev, true);
231 nfp_port_configure(netdev, false);
236 nfp_repr_fix_features(struct net_device *netdev, netdev_features_t features)
238 struct nfp_repr *repr = netdev_priv(netdev);
281 nfp_repr_transfer_features(struct net_device *netdev, struct net_device *lower)
283 struct nfp_repr *repr = netdev_priv(netdev);
288 netif_inherit_tso_max(netdev, lower);
290 netdev_update_features(netdev);
295 unregister_netdev(repr->netdev);
296 nfp_app_repr_clean(repr->app, repr->netdev);
315 int nfp_repr_init(struct nfp_app *app, struct net_device *netdev,
319 struct nfp_repr *repr = netdev_priv(netdev);
324 nfp_repr_set_lockdep_class(netdev);
333 netdev->netdev_ops = &nfp_repr_netdev_ops;
334 netdev->ethtool_ops = &nfp_port_ethtool_ops;
336 netdev->max_mtu = pf_netdev->max_mtu;
340 netdev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
342 netdev->hw_features = NETIF_F_HIGHDMA;
344 netdev->hw_features |= NETIF_F_RXCSUM;
346 netdev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
348 netdev->hw_features |= NETIF_F_SG;
351 netdev->hw_features |= NETIF_F_TSO | NETIF_F_TSO6;
353 netdev->hw_features |= NETIF_F_RXHASH;
356 netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
360 netdev->hw_features |= NETIF_F_GSO_GRE;
363 netdev->hw_enc_features = netdev->hw_features;
365 netdev->vlan_features = netdev->hw_features;
368 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX;
371 netdev_warn(netdev, "Device advertises both TSO2 and TXVLAN. Refusing to enable TXVLAN.\n");
373 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_TX;
376 netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER;
378 netdev->hw_features |= NETIF_F_HW_VLAN_STAG_RX;
380 netdev->features = netdev->hw_features;
385 netdev->features &= ~NETIF_F_HW_VLAN_STAG_RX;
386 netif_set_tso_max_segs(netdev, NFP_NET_LSO_MAX_SEGS);
388 netdev->priv_flags |= IFF_NO_QUEUE | IFF_DISABLE_NETPOLL;
389 netdev->features |= NETIF_F_LLTX;
392 netdev->features |= NETIF_F_HW_TC;
393 netdev->hw_features |= NETIF_F_HW_TC;
396 err = nfp_app_repr_init(app, netdev);
400 err = register_netdev(netdev);
407 nfp_app_repr_clean(app, netdev);
416 free_netdev(repr->netdev);
419 void nfp_repr_free(struct net_device *netdev)
421 __nfp_repr_free(netdev_priv(netdev));
427 struct net_device *netdev;
430 netdev = alloc_etherdev_mqs(sizeof(*repr), txqs, rxqs);
431 if (!netdev)
434 netif_carrier_off(netdev);
436 repr = netdev_priv(netdev);
437 repr->netdev = netdev;
444 return netdev;
447 free_netdev(netdev);
454 repr->netdev->name);
461 struct net_device *netdev;
465 netdev = nfp_repr_get_locked(app, reprs, i);
466 if (netdev)
467 nfp_repr_clean_and_free(netdev_priv(netdev));
476 struct net_device *netdev;
489 netdev = nfp_repr_get_locked(app, reprs, i);
490 if (netdev)
491 nfp_app_repr_preclean(app, netdev);
514 struct net_device *netdev;
524 netdev = nfp_repr_get_locked(app, reprs, i);
525 if (!netdev)
528 repr = netdev_priv(netdev);
532 nfp_app_repr_preclean(app, netdev);