summaryrefslogtreecommitdiffstats
path: root/sys/net/if_lagg.h
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2015-11-01 19:59:04 +0000
committermelifaro <melifaro@FreeBSD.org>2015-11-01 19:59:04 +0000
commita23a95f981ff4d4789caf8a8349c8b017b1ac351 (patch)
treee14fb194dc2eb80fd6a782f7c5697904c9afbb08 /sys/net/if_lagg.h
parentda280dad9e0d1d851ece71202f4ac9b68d76da57 (diff)
downloadFreeBSD-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.h8
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 );
OpenPOWER on IntegriCloud