Deleted Added
full compact
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 */