• Ivan Khoronzhuk's avatar
    net: core: dev_addr_lists: add auxiliary func to handle reference address updates · e7946760
    Ivan Khoronzhuk authored
    In order to avoid all table update, and only remove or add new
    address, the auxiliary function exists, named __hw_addr_sync_dev().
    It allows end driver do nothing when nothing changed and add/rm when
    concrete address is firstly added or lastly removed. But it doesn't
    include cases when an address of real device or vlan was reused by
    other vlans or vlan/macval devices.
    
    For handaling events when address was reused/unreused the patch adds
    new auxiliary routine - __hw_addr_ref_sync_dev(). It allows to do
    nothing when nothing was changed and do updates only for an address
    being added/reused/deleted/unreused. Thus, clone address changes for
    vlans can be mirrored in the table. The function is exclusive with
    __hw_addr_sync_dev(). It's responsibility of the end driver to
    identify address vlan device, if it needs so.
    Signed-off-by: default avatarIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e7946760
dev_addr_lists.c 24 KB