Deleted Added
full compact
ieee8023ad_lacp.c (173804) ieee8023ad_lacp.c (175005)
1/* $NetBSD: ieee8023ad_lacp.c,v 1.3 2005/12/11 12:24:54 christos Exp $ */
2
3/*-
4 * Copyright (c)2005 YAMAMOTO Takashi,
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 13 unchanged lines hidden (view full) ---

22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
28
29#include <sys/cdefs.h>
1/* $NetBSD: ieee8023ad_lacp.c,v 1.3 2005/12/11 12:24:54 christos Exp $ */
2
3/*-
4 * Copyright (c)2005 YAMAMOTO Takashi,
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 13 unchanged lines hidden (view full) ---

22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: head/sys/net/ieee8023ad_lacp.c 173804 2007-11-21 05:28:49Z thompsa $");
30__FBSDID("$FreeBSD: head/sys/net/ieee8023ad_lacp.c 175005 2007-12-31 01:16:35Z thompsa $");
31
32#include <sys/param.h>
33#include <sys/callout.h>
34#include <sys/mbuf.h>
35#include <sys/systm.h>
36#include <sys/malloc.h>
37#include <sys/kernel.h> /* hz */
38#include <sys/socket.h> /* for net/if.h */

--- 169 unchanged lines hidden (view full) ---

208};
209
210static const lacp_timer_func_t lacp_timer_funcs[LACP_NTIMER] = {
211 [LACP_TIMER_CURRENT_WHILE] = lacp_sm_rx_timer,
212 [LACP_TIMER_PERIODIC] = lacp_sm_ptx_timer,
213 [LACP_TIMER_WAIT_WHILE] = lacp_sm_mux_timer,
214};
215
31
32#include <sys/param.h>
33#include <sys/callout.h>
34#include <sys/mbuf.h>
35#include <sys/systm.h>
36#include <sys/malloc.h>
37#include <sys/kernel.h> /* hz */
38#include <sys/socket.h> /* for net/if.h */

--- 169 unchanged lines hidden (view full) ---

208};
209
210static const lacp_timer_func_t lacp_timer_funcs[LACP_NTIMER] = {
211 [LACP_TIMER_CURRENT_WHILE] = lacp_sm_rx_timer,
212 [LACP_TIMER_PERIODIC] = lacp_sm_ptx_timer,
213 [LACP_TIMER_WAIT_WHILE] = lacp_sm_mux_timer,
214};
215
216void
216struct mbuf *
217lacp_input(struct lagg_port *lgp, struct mbuf *m)
218{
219 struct lagg_softc *sc = lgp->lp_softc;
220 struct lacp_softc *lsc = LACP_SOFTC(sc);
221 uint8_t subtype;
222
223 if (m->m_pkthdr.len < sizeof(struct ether_header) + sizeof(subtype)) {
224 m_freem(m);
217lacp_input(struct lagg_port *lgp, struct mbuf *m)
218{
219 struct lagg_softc *sc = lgp->lp_softc;
220 struct lacp_softc *lsc = LACP_SOFTC(sc);
221 uint8_t subtype;
222
223 if (m->m_pkthdr.len < sizeof(struct ether_header) + sizeof(subtype)) {
224 m_freem(m);
225 return;
225 return (NULL);
226 }
227
228 m_copydata(m, sizeof(struct ether_header), sizeof(subtype), &subtype);
229 switch (subtype) {
230 case SLOWPROTOCOLS_SUBTYPE_LACP:
231 IF_HANDOFF(&lsc->lsc_queue, m, NULL);
232 taskqueue_enqueue(taskqueue_swi, &lsc->lsc_qtask);
233 break;
234
235 case SLOWPROTOCOLS_SUBTYPE_MARKER:
236 lacp_marker_input(lgp, m);
237 break;
238
239 default:
226 }
227
228 m_copydata(m, sizeof(struct ether_header), sizeof(subtype), &subtype);
229 switch (subtype) {
230 case SLOWPROTOCOLS_SUBTYPE_LACP:
231 IF_HANDOFF(&lsc->lsc_queue, m, NULL);
232 taskqueue_enqueue(taskqueue_swi, &lsc->lsc_qtask);
233 break;
234
235 case SLOWPROTOCOLS_SUBTYPE_MARKER:
236 lacp_marker_input(lgp, m);
237 break;
238
239 default:
240 /* Unknown LACP packet type */
241 m_freem(m);
242 break;
240 /* Not a subtype we are interested in */
241 return (m);
243 }
242 }
243 return (NULL);
244}
245
246static void
247lacp_dequeue(void *arg, int pending)
248{
249 struct lacp_softc *lsc = (struct lacp_softc *)arg;
250 struct lagg_softc *sc = lsc->lsc_softc;
251 struct lagg_port *lgp;

--- 1710 unchanged lines hidden ---
244}
245
246static void
247lacp_dequeue(void *arg, int pending)
248{
249 struct lacp_softc *lsc = (struct lacp_softc *)arg;
250 struct lagg_softc *sc = lsc->lsc_softc;
251 struct lagg_port *lgp;

--- 1710 unchanged lines hidden ---