Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18bfb924 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

net: introduce default neigh_construct/destroy ndo calls for L2 upper devices



L2 upper device needs to propagate neigh_construct/destroy calls down to
lower devices. Do this by defining default ndo functions and use them in
team, bond, bridge and vlan.

Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 503eebc2
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -4137,6 +4137,8 @@ static const struct net_device_ops bond_netdev_ops = {
	.ndo_add_slave		= bond_enslave,
	.ndo_add_slave		= bond_enslave,
	.ndo_del_slave		= bond_release,
	.ndo_del_slave		= bond_release,
	.ndo_fix_features	= bond_fix_features,
	.ndo_fix_features	= bond_fix_features,
	.ndo_neigh_construct	= netdev_default_l2upper_neigh_construct,
	.ndo_neigh_destroy	= netdev_default_l2upper_neigh_destroy,
	.ndo_bridge_setlink	= switchdev_port_bridge_setlink,
	.ndo_bridge_setlink	= switchdev_port_bridge_setlink,
	.ndo_bridge_getlink	= switchdev_port_bridge_getlink,
	.ndo_bridge_getlink	= switchdev_port_bridge_getlink,
	.ndo_bridge_dellink	= switchdev_port_bridge_dellink,
	.ndo_bridge_dellink	= switchdev_port_bridge_dellink,
+2 −0
Original line number Original line Diff line number Diff line
@@ -2002,6 +2002,8 @@ static const struct net_device_ops team_netdev_ops = {
	.ndo_add_slave		= team_add_slave,
	.ndo_add_slave		= team_add_slave,
	.ndo_del_slave		= team_del_slave,
	.ndo_del_slave		= team_del_slave,
	.ndo_fix_features	= team_fix_features,
	.ndo_fix_features	= team_fix_features,
	.ndo_neigh_construct	= netdev_default_l2upper_neigh_construct,
	.ndo_neigh_destroy	= netdev_default_l2upper_neigh_destroy,
	.ndo_change_carrier     = team_change_carrier,
	.ndo_change_carrier     = team_change_carrier,
	.ndo_bridge_setlink	= switchdev_port_bridge_setlink,
	.ndo_bridge_setlink	= switchdev_port_bridge_setlink,
	.ndo_bridge_getlink	= switchdev_port_bridge_getlink,
	.ndo_bridge_getlink	= switchdev_port_bridge_getlink,
+4 −0
Original line number Original line Diff line number Diff line
@@ -3845,6 +3845,10 @@ void *netdev_lower_dev_get_private(struct net_device *dev,
				   struct net_device *lower_dev);
				   struct net_device *lower_dev);
void netdev_lower_state_changed(struct net_device *lower_dev,
void netdev_lower_state_changed(struct net_device *lower_dev,
				void *lower_state_info);
				void *lower_state_info);
int netdev_default_l2upper_neigh_construct(struct net_device *dev,
					   struct neighbour *n);
void netdev_default_l2upper_neigh_destroy(struct net_device *dev,
					  struct neighbour *n);


/* RSS keys are 40 or 52 bytes long */
/* RSS keys are 40 or 52 bytes long */
#define NETDEV_RSS_KEY_LEN 52
#define NETDEV_RSS_KEY_LEN 52
+2 −0
Original line number Original line Diff line number Diff line
@@ -790,6 +790,8 @@ static const struct net_device_ops vlan_netdev_ops = {
	.ndo_netpoll_cleanup	= vlan_dev_netpoll_cleanup,
	.ndo_netpoll_cleanup	= vlan_dev_netpoll_cleanup,
#endif
#endif
	.ndo_fix_features	= vlan_dev_fix_features,
	.ndo_fix_features	= vlan_dev_fix_features,
	.ndo_neigh_construct	= netdev_default_l2upper_neigh_construct,
	.ndo_neigh_destroy	= netdev_default_l2upper_neigh_destroy,
	.ndo_fdb_add		= switchdev_port_fdb_add,
	.ndo_fdb_add		= switchdev_port_fdb_add,
	.ndo_fdb_del		= switchdev_port_fdb_del,
	.ndo_fdb_del		= switchdev_port_fdb_del,
	.ndo_fdb_dump		= switchdev_port_fdb_dump,
	.ndo_fdb_dump		= switchdev_port_fdb_dump,
+2 −0
Original line number Original line Diff line number Diff line
@@ -349,6 +349,8 @@ static const struct net_device_ops br_netdev_ops = {
	.ndo_add_slave		 = br_add_slave,
	.ndo_add_slave		 = br_add_slave,
	.ndo_del_slave		 = br_del_slave,
	.ndo_del_slave		 = br_del_slave,
	.ndo_fix_features        = br_fix_features,
	.ndo_fix_features        = br_fix_features,
	.ndo_neigh_construct	 = netdev_default_l2upper_neigh_construct,
	.ndo_neigh_destroy	 = netdev_default_l2upper_neigh_destroy,
	.ndo_fdb_add		 = br_fdb_add,
	.ndo_fdb_add		 = br_fdb_add,
	.ndo_fdb_del		 = br_fdb_delete,
	.ndo_fdb_del		 = br_fdb_delete,
	.ndo_fdb_dump		 = br_fdb_dump,
	.ndo_fdb_dump		 = br_fdb_dump,
Loading