On 08/12/2022 17:28, Ido Schimmel wrote:
> Add new netlink attributes to the RTM_NEWMDB request that allow user
> space to add (*, G) with a source list and filter mode.
> 
> The RTM_NEWMDB message can already dump such entries (created by the
> kernel) so there is no need to add dump support. However, the message
> contains a different set of attributes depending if it is a request or a
> response. The naming and structure of the new attributes try to follow
> the existing ones used in the response.
> 
> Request:
> 
> [ struct nlmsghdr ]
> [ struct br_port_msg ]
> [ MDBA_SET_ENTRY ]
>       struct br_mdb_entry
> [ MDBA_SET_ENTRY_ATTRS ]
>       [ MDBE_ATTR_SOURCE ]
>               struct in_addr / struct in6_addr
>       [ MDBE_ATTR_SRC_LIST ]          // new
>               [ MDBE_SRC_LIST_ENTRY ]
>                       [ MDBE_SRCATTR_ADDRESS ]
>                               struct in_addr / struct in6_addr
>               [ ...]
>       [ MDBE_ATTR_GROUP_MODE ]        // new
>               u8
> 
> Response:
> 
> [ struct nlmsghdr ]
> [ struct br_port_msg ]
> [ MDBA_MDB ]
>       [ MDBA_MDB_ENTRY ]
>               [ MDBA_MDB_ENTRY_INFO ]
>                       struct br_mdb_entry
>               [ MDBA_MDB_EATTR_TIMER ]
>                       u32
>               [ MDBA_MDB_EATTR_SOURCE ]
>                       struct in_addr / struct in6_addr
>               [ MDBA_MDB_EATTR_RTPROT ]
>                       u8
>               [ MDBA_MDB_EATTR_SRC_LIST ]
>                       [ MDBA_MDB_SRCLIST_ENTRY ]
>                               [ MDBA_MDB_SRCATTR_ADDRESS ]
>                                       struct in_addr / struct in6_addr
>                               [ MDBA_MDB_SRCATTR_TIMER ]
>                                       u8
>                       [...]
>               [ MDBA_MDB_EATTR_GROUP_MODE ]
>                       u8
> 
> Signed-off-by: Ido Schimmel <[email protected]>
> ---
> 
> Notes:
>     v1:
>     * Use an array instead of list to store source entries.
>     * Drop br_mdb_config_attrs_fini().
> 
>  include/uapi/linux/if_bridge.h |  20 +++++
>  net/bridge/br_mdb.c            | 130 +++++++++++++++++++++++++++++++++
>  2 files changed, 150 insertions(+)
> 

Acked-by: Nikolay Aleksandrov <[email protected]>

Reply via email to