ip_mroute.c (150350) | ip_mroute.c (151967) |
---|---|
1/*- 2 * Copyright (c) 1989 Stephen Deering 3 * Copyright (c) 1992, 1993 4 * The Regents of the University of California. All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * Stephen Deering of Stanford University. 8 * --- 38 unchanged lines hidden (view full) --- 47 * Modified by Pavlin Radoslavov, USC/ISI, May 1998, August 1999, October 2000 48 * Modified by Hitoshi Asaeda, WIDE, August 2000 49 * Modified by Pavlin Radoslavov, ICSI, October 2002 50 * 51 * MROUTING Revision: 3.5 52 * and PIM-SMv2 and PIM-DM support, advanced API support, 53 * bandwidth metering and signaling 54 * | 1/*- 2 * Copyright (c) 1989 Stephen Deering 3 * Copyright (c) 1992, 1993 4 * The Regents of the University of California. All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * Stephen Deering of Stanford University. 8 * --- 38 unchanged lines hidden (view full) --- 47 * Modified by Pavlin Radoslavov, USC/ISI, May 1998, August 1999, October 2000 48 * Modified by Hitoshi Asaeda, WIDE, August 2000 49 * Modified by Pavlin Radoslavov, ICSI, October 2002 50 * 51 * MROUTING Revision: 3.5 52 * and PIM-SMv2 and PIM-DM support, advanced API support, 53 * bandwidth metering and signaling 54 * |
55 * $FreeBSD: head/sys/netinet/ip_mroute.c 150350 2005-09-19 22:31:45Z andre $ | 55 * $FreeBSD: head/sys/netinet/ip_mroute.c 151967 2005-11-02 13:46:32Z andre $ |
56 */ 57 58#include "opt_mac.h" 59#include "opt_mrouting.h" 60 61#ifdef PIM 62#define _PIM_VT 1 63#endif --- 1831 unchanged lines hidden (view full) --- 1895 m->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA; 1896 } 1897 1898 /* 1899 * copy the old packet & pullup its IP header into the 1900 * new mbuf so we can modify it. Try to fill the new 1901 * mbuf since if we don't the ethernet driver will. 1902 */ | 56 */ 57 58#include "opt_mac.h" 59#include "opt_mrouting.h" 60 61#ifdef PIM 62#define _PIM_VT 1 63#endif --- 1831 unchanged lines hidden (view full) --- 1895 m->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA; 1896 } 1897 1898 /* 1899 * copy the old packet & pullup its IP header into the 1900 * new mbuf so we can modify it. Try to fill the new 1901 * mbuf since if we don't the ethernet driver will. 1902 */ |
1903 MGETHDR(mb_copy, M_DONTWAIT, MT_HEADER); | 1903 MGETHDR(mb_copy, M_DONTWAIT, MT_DATA); |
1904 if (mb_copy == NULL) 1905 return; 1906#ifdef MAC 1907 mac_create_mbuf_multicast_encap(m, vifp->v_ifp, mb_copy); 1908#endif 1909 mb_copy->m_data += max_linkhdr; 1910 mb_copy->m_len = sizeof(multicast_encap_iphdr); 1911 --- 798 unchanged lines hidden (view full) --- 2710 return; /* No pending upcalls */ 2711 2712 bw_upcalls_n = 0; 2713 2714 /* 2715 * Allocate a new mbuf, initialize it with the header and 2716 * the payload for the pending calls. 2717 */ | 1904 if (mb_copy == NULL) 1905 return; 1906#ifdef MAC 1907 mac_create_mbuf_multicast_encap(m, vifp->v_ifp, mb_copy); 1908#endif 1909 mb_copy->m_data += max_linkhdr; 1910 mb_copy->m_len = sizeof(multicast_encap_iphdr); 1911 --- 798 unchanged lines hidden (view full) --- 2710 return; /* No pending upcalls */ 2711 2712 bw_upcalls_n = 0; 2713 2714 /* 2715 * Allocate a new mbuf, initialize it with the header and 2716 * the payload for the pending calls. 2717 */ |
2718 MGETHDR(m, M_DONTWAIT, MT_HEADER); | 2718 MGETHDR(m, M_DONTWAIT, MT_DATA); |
2719 if (m == NULL) { 2720 log(LOG_WARNING, "bw_upcalls_send: cannot allocate mbuf\n"); 2721 return; 2722 } 2723 2724 m->m_len = m->m_pkthdr.len = 0; 2725 m_copyback(m, 0, sizeof(struct igmpmsg), (caddr_t)&igmpmsg); 2726 m_copyback(m, sizeof(struct igmpmsg), len, (caddr_t)&bw_upcalls[0]); --- 323 unchanged lines hidden (view full) --- 3050 struct igmpmsg *im; 3051 struct sockaddr_in k_igmpsrc = { sizeof k_igmpsrc, AF_INET }; 3052 3053 VIF_LOCK_ASSERT(); 3054 3055 /* 3056 * Add a new mbuf with an upcall header 3057 */ | 2719 if (m == NULL) { 2720 log(LOG_WARNING, "bw_upcalls_send: cannot allocate mbuf\n"); 2721 return; 2722 } 2723 2724 m->m_len = m->m_pkthdr.len = 0; 2725 m_copyback(m, 0, sizeof(struct igmpmsg), (caddr_t)&igmpmsg); 2726 m_copyback(m, sizeof(struct igmpmsg), len, (caddr_t)&bw_upcalls[0]); --- 323 unchanged lines hidden (view full) --- 3050 struct igmpmsg *im; 3051 struct sockaddr_in k_igmpsrc = { sizeof k_igmpsrc, AF_INET }; 3052 3053 VIF_LOCK_ASSERT(); 3054 3055 /* 3056 * Add a new mbuf with an upcall header 3057 */ |
3058 MGETHDR(mb_first, M_DONTWAIT, MT_HEADER); | 3058 MGETHDR(mb_first, M_DONTWAIT, MT_DATA); |
3059 if (mb_first == NULL) { 3060 m_freem(mb_copy); 3061 return ENOBUFS; 3062 } 3063 mb_first->m_data += max_linkhdr; 3064 mb_first->m_pkthdr.len = len + sizeof(struct igmpmsg); 3065 mb_first->m_len = sizeof(struct igmpmsg); 3066 mb_first->m_next = mb_copy; --- 43 unchanged lines hidden (view full) --- 3110 if ((vifi >= numvifs) || (viftable[vifi].v_lcl_addr.s_addr == 0)) { 3111 m_freem(mb_copy); 3112 return EADDRNOTAVAIL; /* The iif vif is invalid */ 3113 } 3114 3115 /* 3116 * Add a new mbuf with the encapsulating header 3117 */ | 3059 if (mb_first == NULL) { 3060 m_freem(mb_copy); 3061 return ENOBUFS; 3062 } 3063 mb_first->m_data += max_linkhdr; 3064 mb_first->m_pkthdr.len = len + sizeof(struct igmpmsg); 3065 mb_first->m_len = sizeof(struct igmpmsg); 3066 mb_first->m_next = mb_copy; --- 43 unchanged lines hidden (view full) --- 3110 if ((vifi >= numvifs) || (viftable[vifi].v_lcl_addr.s_addr == 0)) { 3111 m_freem(mb_copy); 3112 return EADDRNOTAVAIL; /* The iif vif is invalid */ 3113 } 3114 3115 /* 3116 * Add a new mbuf with the encapsulating header 3117 */ |
3118 MGETHDR(mb_first, M_DONTWAIT, MT_HEADER); | 3118 MGETHDR(mb_first, M_DONTWAIT, MT_DATA); |
3119 if (mb_first == NULL) { 3120 m_freem(mb_copy); 3121 return ENOBUFS; 3122 } 3123 mb_first->m_data += max_linkhdr; 3124 mb_first->m_len = sizeof(pim_encap_iphdr) + sizeof(pim_encap_pimhdr); 3125 mb_first->m_next = mb_copy; 3126 --- 343 unchanged lines hidden --- | 3119 if (mb_first == NULL) { 3120 m_freem(mb_copy); 3121 return ENOBUFS; 3122 } 3123 mb_first->m_data += max_linkhdr; 3124 mb_first->m_len = sizeof(pim_encap_iphdr) + sizeof(pim_encap_pimhdr); 3125 mb_first->m_next = mb_copy; 3126 --- 343 unchanged lines hidden --- |