diff options
author | melifaro <melifaro@FreeBSD.org> | 2015-11-01 19:59:04 +0000 |
---|---|---|
committer | melifaro <melifaro@FreeBSD.org> | 2015-11-01 19:59:04 +0000 |
commit | a23a95f981ff4d4789caf8a8349c8b017b1ac351 (patch) | |
tree | e14fb194dc2eb80fd6a782f7c5697904c9afbb08 /sys/net/if_lagg.h | |
parent | da280dad9e0d1d851ece71202f4ac9b68d76da57 (diff) | |
download | FreeBSD-src-a23a95f981ff4d4789caf8a8349c8b017b1ac351.zip FreeBSD-src-a23a95f981ff4d4789caf8a8349c8b017b1ac351.tar.gz |
Fix lladdr change propagation for on vlans on top of it.
Fix lladdr update when setting mac address manually.
Fix lladdr_event for slave ports addition.
MFC after: 4 weeks
Sponsored by: Yandex LLC
Differential Revision: https://reviews.freebsd.org/D4004
Diffstat (limited to 'sys/net/if_lagg.h')
-rw-r--r-- | sys/net/if_lagg.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/net/if_lagg.h b/sys/net/if_lagg.h index 956c238..195ac3a 100644 --- a/sys/net/if_lagg.h +++ b/sys/net/if_lagg.h @@ -201,11 +201,16 @@ struct lagg_mc { SLIST_ENTRY(lagg_mc) mc_entries; }; +typedef enum { + LAGG_LLQTYPE_PHYS = 0, /* Task related to physical (underlying) port */ + LAGG_LLQTYPE_VIRT, /* Task related to lagg interface itself */ +} lagg_llqtype; + /* List of interfaces to have the MAC address modified */ struct lagg_llq { struct ifnet *llq_ifp; uint8_t llq_lladdr[ETHER_ADDR_LEN]; - uint8_t llq_primary; + lagg_llqtype llq_type; SLIST_ENTRY(lagg_llq) llq_entries; }; @@ -273,6 +278,7 @@ struct lagg_port { #define LAGG_WUNLOCK(_sc) rm_wunlock(&(_sc)->sc_mtx) #define LAGG_RLOCK_ASSERT(_sc) rm_assert(&(_sc)->sc_mtx, RA_RLOCKED) #define LAGG_WLOCK_ASSERT(_sc) rm_assert(&(_sc)->sc_mtx, RA_WLOCKED) +#define LAGG_UNLOCK_ASSERT(_sc) rm_assert(&(_sc)->sc_mtx, RA_UNLOCKED) extern struct mbuf *(*lagg_input_p)(struct ifnet *, struct mbuf *); extern void (*lagg_linkstate_p)(struct ifnet *, int ); |