if_lagg.h (169329) | if_lagg.h (169569) |
---|---|
1/* $OpenBSD: if_trunk.h,v 1.11 2007/01/31 06:20:19 reyk Exp $ */ 2 3/* 4 * Copyright (c) 2005, 2006 Reyk Floeter <reyk@openbsd.org> 5 * 6 * Permission to use, copy, modify, and distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * | 1/* $OpenBSD: if_trunk.h,v 1.11 2007/01/31 06:20:19 reyk Exp $ */ 2 3/* 4 * Copyright (c) 2005, 2006 Reyk Floeter <reyk@openbsd.org> 5 * 6 * Permission to use, copy, modify, and distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * |
18 * $FreeBSD: head/sys/net/if_lagg.h 169329 2007-05-07 00:35:15Z thompsa $ | 18 * $FreeBSD: head/sys/net/if_lagg.h 169569 2007-05-15 07:41:46Z thompsa $ |
19 */ 20 21#ifndef _NET_LAGG_H 22#define _NET_LAGG_H 23 24/* 25 * Global definitions 26 */ --- 117 unchanged lines hidden (view full) --- 144struct lagg_llq { 145 struct ifnet *llq_ifp; 146 uint8_t llq_lladdr[ETHER_ADDR_LEN]; 147 SLIST_ENTRY(lagg_llq) llq_entries; 148}; 149 150struct lagg_softc { 151 struct ifnet *sc_ifp; /* virtual interface */ | 19 */ 20 21#ifndef _NET_LAGG_H 22#define _NET_LAGG_H 23 24/* 25 * Global definitions 26 */ --- 117 unchanged lines hidden (view full) --- 144struct lagg_llq { 145 struct ifnet *llq_ifp; 146 uint8_t llq_lladdr[ETHER_ADDR_LEN]; 147 SLIST_ENTRY(lagg_llq) llq_entries; 148}; 149 150struct lagg_softc { 151 struct ifnet *sc_ifp; /* virtual interface */ |
152 struct mtx sc_mtx; | 152 struct rwlock sc_mtx; |
153 int sc_proto; /* lagg protocol */ 154 u_int sc_count; /* number of ports */ 155 struct lagg_port *sc_primary; /* primary port */ 156 struct ifmedia sc_media; /* media config */ 157 caddr_t sc_psc; /* protocol data */ 158 159 SLIST_HEAD(__tplhd, lagg_port) sc_ports; /* list of interfaces */ 160 SLIST_ENTRY(lagg_softc) sc_entries; --- 33 unchanged lines hidden (view full) --- 194 /* Redirected callbacks */ 195 int (*lp_ioctl)(struct ifnet *, u_long, caddr_t); 196 int (*lp_output)(struct ifnet *, struct mbuf *, struct sockaddr *, 197 struct rtentry *); 198 199 SLIST_ENTRY(lagg_port) lp_entries; 200}; 201 | 153 int sc_proto; /* lagg protocol */ 154 u_int sc_count; /* number of ports */ 155 struct lagg_port *sc_primary; /* primary port */ 156 struct ifmedia sc_media; /* media config */ 157 caddr_t sc_psc; /* protocol data */ 158 159 SLIST_HEAD(__tplhd, lagg_port) sc_ports; /* list of interfaces */ 160 SLIST_ENTRY(lagg_softc) sc_entries; --- 33 unchanged lines hidden (view full) --- 194 /* Redirected callbacks */ 195 int (*lp_ioctl)(struct ifnet *, u_long, caddr_t); 196 int (*lp_output)(struct ifnet *, struct mbuf *, struct sockaddr *, 197 struct rtentry *); 198 199 SLIST_ENTRY(lagg_port) lp_entries; 200}; 201 |
202#define LAGG_LOCK_INIT(_tr) mtx_init(&(_tr)->sc_mtx, "if_lagg", NULL, \ 203 MTX_DEF) 204#define LAGG_LOCK_DESTROY(_tr) mtx_destroy(&(_tr)->sc_mtx) 205#define LAGG_LOCK(_tr) mtx_lock(&(_tr)->sc_mtx) 206#define LAGG_UNLOCK(_tr) mtx_unlock(&(_tr)->sc_mtx) 207#define LAGG_LOCKED(_tr) mtx_owned(&(_tr)->sc_mtx) 208#define LAGG_LOCK_ASSERT(_tr) mtx_assert(&(_tr)->sc_mtx, MA_OWNED) | 202#define LAGG_LOCK_INIT(_sc) rw_init(&(_sc)->sc_mtx, "if_lagg rwlock") 203#define LAGG_LOCK_DESTROY(_sc) rw_destroy(&(_sc)->sc_mtx) 204#define LAGG_RLOCK(_sc) rw_rlock(&(_sc)->sc_mtx) 205#define LAGG_WLOCK(_sc) rw_wlock(&(_sc)->sc_mtx) 206#define LAGG_RUNLOCK(_sc) rw_runlock(&(_sc)->sc_mtx) 207#define LAGG_WUNLOCK(_sc) rw_wunlock(&(_sc)->sc_mtx) 208#define LAGG_RLOCK_ASSERT(_sc) rw_assert(&(_sc)->sc_mtx, RA_RLOCKED) 209#define LAGG_WLOCK_ASSERT(_sc) rw_assert(&(_sc)->sc_mtx, RA_WLOCKED) |
209 210extern struct mbuf *(*lagg_input_p)(struct ifnet *, struct mbuf *); 211extern void (*lagg_linkstate_p)(struct ifnet *, int ); 212 213int lagg_enqueue(struct ifnet *, struct mbuf *); 214uint32_t lagg_hashmbuf(struct mbuf *, uint32_t); 215 216#endif /* _KERNEL */ 217 218#endif /* _NET_LAGG_H */ | 210 211extern struct mbuf *(*lagg_input_p)(struct ifnet *, struct mbuf *); 212extern void (*lagg_linkstate_p)(struct ifnet *, int ); 213 214int lagg_enqueue(struct ifnet *, struct mbuf *); 215uint32_t lagg_hashmbuf(struct mbuf *, uint32_t); 216 217#endif /* _KERNEL */ 218 219#endif /* _NET_LAGG_H */ |