Deleted Added
full compact
if_gre.c (109623) if_gre.c (111119)
1/* $NetBSD: if_gre.c,v 1.42 2002/08/14 00:23:27 itojun Exp $ */
1/* $NetBSD: if_gre.c,v 1.42 2002/08/14 00:23:27 itojun Exp $ */
2/* $FreeBSD: head/sys/net/if_gre.c 109623 2003-01-21 08:56:16Z alfred $ */
2/* $FreeBSD: head/sys/net/if_gre.c 111119 2003-02-19 05:47:46Z imp $ */
3
4/*
5 * Copyright (c) 1998 The NetBSD Foundation, Inc.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to The NetBSD Foundation
9 * by Heiko W.Rupp <hwr@pilhuhn.de>
10 *

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

155
156static int
157gre_clone_create(ifc, unit)
158 struct if_clone *ifc;
159 int unit;
160{
161 struct gre_softc *sc;
162
3
4/*
5 * Copyright (c) 1998 The NetBSD Foundation, Inc.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to The NetBSD Foundation
9 * by Heiko W.Rupp <hwr@pilhuhn.de>
10 *

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

155
156static int
157gre_clone_create(ifc, unit)
158 struct if_clone *ifc;
159 int unit;
160{
161 struct gre_softc *sc;
162
163 sc = malloc(sizeof(struct gre_softc), M_GRE, 0);
163 sc = malloc(sizeof(struct gre_softc), M_GRE, M_WAITOK);
164 memset(sc, 0, sizeof(struct gre_softc));
165
166 sc->sc_if.if_name = GRENAME;
167 sc->sc_if.if_softc = sc;
168 sc->sc_if.if_unit = unit;
169 sc->sc_if.if_snd.ifq_maxlen = IFQ_MAXLEN;
170 sc->sc_if.if_type = IFT_OTHER;
171 sc->sc_if.if_addrlen = 0;

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

289 ip->ip_src.s_addr = sc->g_src.s_addr;
290 msiz = MOB_H_SIZ_L;
291 }
292 mob_h.proto = htons(mob_h.proto);
293 mob_h.hcrc = gre_in_cksum((u_short *)&mob_h, msiz);
294
295 if ((m->m_data - msiz) < m->m_pktdat) {
296 /* need new mbuf */
164 memset(sc, 0, sizeof(struct gre_softc));
165
166 sc->sc_if.if_name = GRENAME;
167 sc->sc_if.if_softc = sc;
168 sc->sc_if.if_unit = unit;
169 sc->sc_if.if_snd.ifq_maxlen = IFQ_MAXLEN;
170 sc->sc_if.if_type = IFT_OTHER;
171 sc->sc_if.if_addrlen = 0;

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

289 ip->ip_src.s_addr = sc->g_src.s_addr;
290 msiz = MOB_H_SIZ_L;
291 }
292 mob_h.proto = htons(mob_h.proto);
293 mob_h.hcrc = gre_in_cksum((u_short *)&mob_h, msiz);
294
295 if ((m->m_data - msiz) < m->m_pktdat) {
296 /* need new mbuf */
297 MGETHDR(m0, M_NOWAIT, MT_HEADER);
297 MGETHDR(m0, M_DONTWAIT, MT_HEADER);
298 if (m0 == NULL) {
299 _IF_DROP(&ifp->if_snd);
300 m_freem(m);
301 error = ENOBUFS;
302 goto end;
303 }
304 m0->m_next = m;
305 m->m_data += sizeof(struct ip);

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

343 break;
344#endif
345 default:
346 _IF_DROP(&ifp->if_snd);
347 m_freem(m);
348 error = EAFNOSUPPORT;
349 goto end;
350 }
298 if (m0 == NULL) {
299 _IF_DROP(&ifp->if_snd);
300 m_freem(m);
301 error = ENOBUFS;
302 goto end;
303 }
304 m0->m_next = m;
305 m->m_data += sizeof(struct ip);

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

343 break;
344#endif
345 default:
346 _IF_DROP(&ifp->if_snd);
347 m_freem(m);
348 error = EAFNOSUPPORT;
349 goto end;
350 }
351 M_PREPEND(m, sizeof(struct greip), M_NOWAIT);
351 M_PREPEND(m, sizeof(struct greip), M_DONTWAIT);
352 } else {
353 _IF_DROP(&ifp->if_snd);
354 m_freem(m);
355 error = EINVAL;
356 goto end;
357 }
358
359 if (m == NULL) { /* impossible */

--- 397 unchanged lines hidden ---
352 } else {
353 _IF_DROP(&ifp->if_snd);
354 m_freem(m);
355 error = EINVAL;
356 goto end;
357 }
358
359 if (m == NULL) { /* impossible */

--- 397 unchanged lines hidden ---