diff options
author | thompsa <thompsa@FreeBSD.org> | 2007-05-15 07:41:46 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2007-05-15 07:41:46 +0000 |
commit | 1eb8d76bed26546baab610bdf8db03724e5e4b16 (patch) | |
tree | 9b46ae887a0094102a87bddd505c6bca8a08d5cf /sys/net/ieee8023ad_lacp.h | |
parent | c7b3a722a96766bc84c8f96b03aa1cf5ce003d34 (diff) | |
download | FreeBSD-src-1eb8d76bed26546baab610bdf8db03724e5e4b16.zip FreeBSD-src-1eb8d76bed26546baab610bdf8db03724e5e4b16.tar.gz |
Change from a mutex to a read/write lock. This allows the tx port to be
selected simultaneously by multiple senders and transmit/receive is not
serialised between aggregated interfaces.
Diffstat (limited to 'sys/net/ieee8023ad_lacp.h')
-rw-r--r-- | sys/net/ieee8023ad_lacp.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net/ieee8023ad_lacp.h b/sys/net/ieee8023ad_lacp.h index 21ed62e..5761e3e 100644 --- a/sys/net/ieee8023ad_lacp.h +++ b/sys/net/ieee8023ad_lacp.h @@ -214,6 +214,8 @@ struct lacp_softc { struct callout lsc_callout; LIST_HEAD(, lacp_port) lsc_ports; u_int32_t lsc_hashkey; + struct task lsc_qtask; + struct ifqueue lsc_queue; /* pdu input queue */ }; #define LACP_TYPE_ACTORINFO 1 @@ -262,8 +264,7 @@ struct markerdu { #define LACP_PORT(_lp) ((struct lacp_port *)(_lp)->lp_psc) #define LACP_SOFTC(_sc) ((struct lacp_softc *)(_sc)->sc_psc) -int lacp_input(struct lagg_port *, struct mbuf *); -int lacp_marker_input(struct lagg_port *, struct mbuf *); +void lacp_input(struct lagg_port *, struct mbuf *); struct lagg_port *lacp_select_tx_port(struct lagg_softc *, struct mbuf *); int lacp_attach(struct lagg_softc *); int lacp_detach(struct lagg_softc *); |