diff options
author | David S. Miller <davem@davemloft.net> | 2016-01-10 21:50:21 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-01-10 21:50:21 (GMT) |
commit | d3517f19f2c41f1b4e9b6a763c0cea3f7d72b589 (patch) | |
tree | 0477eec356f1e7c9422c1fa3ea66da92bc31defb /include/net | |
parent | c9c99311b55d4765cae35c652cb637747cc637b7 (diff) | |
parent | 4f5590f8cd736768170818d1b7ea0075972e2701 (diff) | |
download | linux-d3517f19f2c41f1b4e9b6a763c0cea3f7d72b589.tar.xz |
Merge branch 'mlxsw-layer2-multicast'
Jiri Pirko says:
====================
mlxsw: Adding layer 2 multicast
Elad says:
This patchset add Linux hardware reflection for L2 multicast offload and add
MC support in mlxsw. For every bridge MDB entry insertion, either by IGMP
snooping or by static insertion/removal, a switchdev ops is been called.
In mlxsw, a new multicast group (MID) is been created and ports are assigned.
When all ports are removed, the multicast group is been deleted.
---
v1->v2:
- GFP_ATOMIC->GFP_KERNEL change in patch 7/8
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/switchdev.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/net/switchdev.h b/include/net/switchdev.h index 603ae2f..d451122 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -68,6 +68,7 @@ enum switchdev_obj_id { SWITCHDEV_OBJ_ID_PORT_VLAN, SWITCHDEV_OBJ_ID_IPV4_FIB, SWITCHDEV_OBJ_ID_PORT_FDB, + SWITCHDEV_OBJ_ID_PORT_MDB, }; struct switchdev_obj { @@ -113,6 +114,16 @@ struct switchdev_obj_port_fdb { #define SWITCHDEV_OBJ_PORT_FDB(obj) \ container_of(obj, struct switchdev_obj_port_fdb, obj) +/* SWITCHDEV_OBJ_ID_PORT_MDB */ +struct switchdev_obj_port_mdb { + struct switchdev_obj obj; + unsigned char addr[ETH_ALEN]; + u16 vid; +}; + +#define SWITCHDEV_OBJ_PORT_MDB(obj) \ + container_of(obj, struct switchdev_obj_port_mdb, obj) + void switchdev_trans_item_enqueue(struct switchdev_trans *trans, void *data, void (*destructor)(void const *), struct switchdev_trans_item *tritem); |