search for: backup_netdev

Displaying 20 results from an estimated 40 matches for "backup_netdev".

2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...* as 'active' netdev. >+ */ >+ >+/* bypass state maintained when BACKUP feature is enabled */ >+struct virtnet_bypass_info { >+ /* passthru netdev with same MAC */ >+ struct net_device __rcu *active_netdev; >+ >+ /* virtio_net netdev */ >+ struct net_device __rcu *backup_netdev; >+ >+ /* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >...
2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...* as 'active' netdev. >+ */ >+ >+/* bypass state maintained when BACKUP feature is enabled */ >+struct virtnet_bypass_info { >+ /* passthru netdev with same MAC */ >+ struct net_device __rcu *active_netdev; >+ >+ /* virtio_net netdev */ >+ struct net_device __rcu *backup_netdev; >+ >+ /* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >...
2018 Apr 05
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...e with the same MAC is registered + * as 'active' netdev. + */ + +/* bypass state maintained when BACKUP feature is enabled */ +struct virtnet_bypass_info { + /* passthru netdev with same MAC */ + struct net_device __rcu *active_netdev; + + /* virtio_net netdev */ + struct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 bypass_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + +static int virtn...
2018 Apr 06
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...ead_lock(); >> + >> + child_netdev = rcu_dereference(vbi->active_netdev); >> + if (child_netdev) { >> + dev_uc_sync_multiple(child_netdev, dev); >> + dev_mc_sync_multiple(child_netdev, dev); >> + } >> + >> + child_netdev = rcu_dereference(vbi->backup_netdev); >> + if (child_netdev) { >> + dev_uc_sync_multiple(child_netdev, dev); >> + dev_mc_sync_multiple(child_netdev, dev); >> + } >> + >> + rcu_read_unlock(); >> +} > This should be moved to bypass module. Sure. All these bypass ndo_ops can be moved to by...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...u *active_netdev; You still use "active"/"backup" names which is highly misleading as it has completely different meaning that in bond for example. I noted that in my previous review already. Please change it. >+ >+ /* virtio_net netdev */ >+ struct net_device __rcu *backup_netdev; >+ >+ /* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...u *active_netdev; You still use "active"/"backup" names which is highly misleading as it has completely different meaning that in bond for example. I noted that in my previous review already. Please change it. >+ >+ /* virtio_net netdev */ >+ struct net_device __rcu *backup_netdev; >+ >+ /* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >...
2018 Apr 10
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...t bypass_master { + struct list_head list; + struct net_device __rcu *bypass_netdev; + struct bypass_ops __rcu *ops; +}; + +/* bypass state */ +struct bypass_info { + /* passthru netdev with same MAC */ + struct net_device __rcu *active_netdev; + + /* virtio_net netdev */ + struct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 bypass_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + +#if IS_ENABLED(C...
2018 Apr 11
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...With regards to alternate names for 'active', you suggested 'stolen', but i am not too happy with it. netvsc uses vf_netdev, are you OK with this? Or another option is 'passthru' > > >> + >> + /* virtio_net netdev */ >> + struct net_device __rcu *backup_netdev; >> + >> + /* active netdev stats */ >> + struct rtnl_link_stats64 active_stats; >> + >> + /* backup netdev stats */ >> + struct rtnl_link_stats64 backup_stats; >> + >> + /* aggregated stats */ >> + struct rtnl_link_stats64 bypass_stats; >&gt...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...it describes the modus operandi. The bypass master steals some netdevice according to some match. But I don't insist on "stolen". Just sounds right. > > > >> >> >> > + >> > + /* virtio_net netdev */ >> > + struct net_device __rcu *backup_netdev; >> > + >> > + /* active netdev stats */ >> > + struct rtnl_link_stats64 active_stats; >> > + >> > + /* backup netdev stats */ >> > + struct rtnl_link_stats64 backup_stats; >> > + >> > + /* aggregated stats */ >> > + s...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...it describes the modus operandi. The bypass master steals some netdevice according to some match. But I don't insist on "stolen". Just sounds right. > > > >> >> >> > + >> > + /* virtio_net netdev */ >> > + struct net_device __rcu *backup_netdev; >> > + >> > + /* active netdev stats */ >> > + struct rtnl_link_stats64 active_stats; >> > + >> > + /* backup netdev stats */ >> > + struct rtnl_link_stats64 backup_stats; >> > + >> > + /* aggregated stats */ >> > + s...
2018 Apr 10
6
[RFC PATCH net-next v6 0/4] Enable virtio_net to act as a backup for a passthru device
The main motivation for this patch is to enable cloud service providers to provide an accelerated datapath to virtio-net enabled VMs in a transparent manner with no/minimal guest userspace changes. This also enables hypervisor controlled live migration to be supported with VMs that have direct attached SR-IOV VF devices. Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used
2018 Apr 05
6
[RFC PATCH net-next v5 0/4] Enable virtio_net to act as a backup for a passthru device
The main motivation for this patch is to enable cloud service providers to provide an accelerated datapath to virtio-net enabled VMs in a transparent manner with no/minimal guest userspace changes. This also enables hypervisor controlled live migration to be supported with VMs that have direct attached SR-IOV VF devices. Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...t; > > > +static int bypass_slave_pre_unregister(struct net_device *slave_netdev, >> > > > + struct net_device *bypass_netdev, >> > > > + struct bypass_ops *bypass_ops) >> > > > +{ >> > > > + struct net_device *backup_netdev, *active_netdev; >> > > > + struct bypass_info *bi; >> > > > + >> > > > + if (bypass_ops) { >> > > > + if (!bypass_ops->slave_pre_unregister) >> > > > + return -EINVAL; >> > > > + >> > > >...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...t; > > > +static int bypass_slave_pre_unregister(struct net_device *slave_netdev, >> > > > + struct net_device *bypass_netdev, >> > > > + struct bypass_ops *bypass_ops) >> > > > +{ >> > > > + struct net_device *backup_netdev, *active_netdev; >> > > > + struct bypass_info *bi; >> > > > + >> > > > + if (bypass_ops) { >> > > > + if (!bypass_ops->slave_pre_unregister) >> > > > + return -EINVAL; >> > > > + >> > > >...
2018 Feb 16
0
[RFC PATCH v3 2/3] virtio_net: Extend virtio to use VF datapath when available
...6 +148,27 @@ struct receive_queue { struct xdp_rxq_info xdp_rxq; }; +/* bypass state maintained when BACKUP feature is enabled */ +struct virtnet_bypass_info { + /* passthru netdev with same MAC */ + struct net_device __rcu *active_netdev; + + /* virtio_net netdev */ + struct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 bypass_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + struct virtnet_i...
2018 Apr 18
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...t;> +} >>>> + >>>> +static int bypass_slave_pre_unregister(struct net_device *slave_netdev, >>>> + struct net_device *bypass_netdev, >>>> + struct bypass_ops *bypass_ops) >>>> +{ >>>> + struct net_device *backup_netdev, *active_netdev; >>>> + struct bypass_info *bi; >>>> + >>>> + if (bypass_ops) { >>>> + if (!bypass_ops->slave_pre_unregister) >>>> + return -EINVAL; >>>> + >>>> + return bypass_ops->slave_pre_unregister(sl...
2018 Feb 16
8
[RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device
Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used by hypervisor to indicate that virtio_net interface should act as a backup for another device with the same MAC address. Ppatch 2 is in response to the community request for a 3 netdev solution. However, it creates some issues we'll get into in a moment. It extends virtio_net to use alternate datapath when available
2018 Feb 16
8
[RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device
Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used by hypervisor to indicate that virtio_net interface should act as a backup for another device with the same MAC address. Ppatch 2 is in response to the community request for a 3 netdev solution. However, it creates some issues we'll get into in a moment. It extends virtio_net to use alternate datapath when available
2018 Apr 18
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...tatic int bypass_slave_pre_unregister(struct net_device *slave_netdev, > >> > > > + struct net_device *bypass_netdev, > >> > > > + struct bypass_ops *bypass_ops) > >> > > > +{ > >> > > > + struct net_device *backup_netdev, *active_netdev; > >> > > > + struct bypass_info *bi; > >> > > > + > >> > > > + if (bypass_ops) { > >> > > > + if (!bypass_ops->slave_pre_unregister) > >> > > > + return -EINVAL; > >> > >...
2018 Apr 09
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...;> > +{ >> > + struct virtnet_bypass_info *vbi; >> > + bool backup; >> > + >> > + vbi = netdev_priv(bypass_netdev); >> > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > + if (backup ? rtnl_dereference(vbi->backup_netdev) : >> > + rtnl_dereference(vbi->active_netdev)) { >> > + netdev_info(bypass_netdev, >> > + "%s attempting to join bypass dev when %s already present\n", >> > + child_netdev->name, backup ? "backup" : "active"); &...