ip_mroute.c (111119) | ip_mroute.c (111888) |
---|---|
1/* 2 * IP multicast forwarding procedures 3 * 4 * Written by David Waitzman, BBN Labs, August 1988. 5 * Modified by Steve Deering, Stanford, February 1989. 6 * Modified by Mark J. Steiglitz, Stanford, May, 1991 7 * Modified by Van Jacobson, LBL, January 1993 8 * Modified by Ajit Thyagarajan, PARC, August 1993 9 * Modified by Bill Fenner, PARC, April 1995 10 * 11 * MROUTING Revision: 3.5 | 1/* 2 * IP multicast forwarding procedures 3 * 4 * Written by David Waitzman, BBN Labs, August 1988. 5 * Modified by Steve Deering, Stanford, February 1989. 6 * Modified by Mark J. Steiglitz, Stanford, May, 1991 7 * Modified by Van Jacobson, LBL, January 1993 8 * Modified by Ajit Thyagarajan, PARC, August 1993 9 * Modified by Bill Fenner, PARC, April 1995 10 * 11 * MROUTING Revision: 3.5 |
12 * $FreeBSD: head/sys/netinet/ip_mroute.c 111119 2003-02-19 05:47:46Z imp $ | 12 * $FreeBSD: head/sys/netinet/ip_mroute.c 111888 2003-03-04 23:19:55Z jlemon $ |
13 */ 14 15#include "opt_mac.h" 16#include "opt_mrouting.h" 17#include "opt_random_ip_id.h" 18 19#include <sys/param.h> 20#include <sys/kernel.h> --- 7 unchanged lines hidden (view full) --- 28#include <sys/socketvar.h> 29#include <sys/sockio.h> 30#include <sys/sx.h> 31#include <sys/sysctl.h> 32#include <sys/syslog.h> 33#include <sys/systm.h> 34#include <sys/time.h> 35#include <net/if.h> | 13 */ 14 15#include "opt_mac.h" 16#include "opt_mrouting.h" 17#include "opt_random_ip_id.h" 18 19#include <sys/param.h> 20#include <sys/kernel.h> --- 7 unchanged lines hidden (view full) --- 28#include <sys/socketvar.h> 29#include <sys/sockio.h> 30#include <sys/sx.h> 31#include <sys/sysctl.h> 32#include <sys/syslog.h> 33#include <sys/systm.h> 34#include <sys/time.h> 35#include <net/if.h> |
36#include <net/netisr.h> |
|
36#include <net/route.h> 37#include <netinet/in.h> 38#include <netinet/igmp.h> 39#include <netinet/in_systm.h> 40#include <netinet/in_var.h> 41#include <netinet/ip.h> 42#include <netinet/ip_encap.h> 43#include <netinet/ip_mroute.h> --- 505 unchanged lines hidden (view full) --- 549 if (hlen > sizeof(struct ip)) 550 ip_stripoptions(m, (struct mbuf *) 0); 551 m->m_data += sizeof(struct ip); 552 m->m_len -= sizeof(struct ip); 553 m->m_pkthdr.len -= sizeof(struct ip); 554 555 m->m_pkthdr.rcvif = last_encap_vif->v_ifp; 556 | 37#include <net/route.h> 38#include <netinet/in.h> 39#include <netinet/igmp.h> 40#include <netinet/in_systm.h> 41#include <netinet/in_var.h> 42#include <netinet/ip.h> 43#include <netinet/ip_encap.h> 44#include <netinet/ip_mroute.h> --- 505 unchanged lines hidden (view full) --- 550 if (hlen > sizeof(struct ip)) 551 ip_stripoptions(m, (struct mbuf *) 0); 552 m->m_data += sizeof(struct ip); 553 m->m_len -= sizeof(struct ip); 554 m->m_pkthdr.len -= sizeof(struct ip); 555 556 m->m_pkthdr.rcvif = last_encap_vif->v_ifp; 557 |
557 (void) IF_HANDOFF(&ipintrq, m, NULL); | 558 netisr_queue(NETISR_IP, m); |
558 /* 559 * normally we would need a "schednetisr(NETISR_IP)" 560 * here but we were called by ip_input and it is going 561 * to loop back & try to dequeue the packet we just 562 * queued as soon as we return so we avoid the 563 * unnecessary software interrrupt. | 559 /* 560 * normally we would need a "schednetisr(NETISR_IP)" 561 * here but we were called by ip_input and it is going 562 * to loop back & try to dequeue the packet we just 563 * queued as soon as we return so we avoid the 564 * unnecessary software interrrupt. |
565 * 566 * XXX 567 * This no longer holds - we may have direct-dispatched the packet, 568 * or there may be a queue processing limit. |
|
564 */ 565} 566 567extern struct domain inetdomain; 568static struct protosw mroute_encap_protosw = 569{ SOCK_RAW, &inetdomain, IPPROTO_IPV4, PR_ATOMIC|PR_ADDR, 570 mroute_encap_input, 0, 0, rip_ctloutput, 571 0, --- 1349 unchanged lines hidden --- | 569 */ 570} 571 572extern struct domain inetdomain; 573static struct protosw mroute_encap_protosw = 574{ SOCK_RAW, &inetdomain, IPPROTO_IPV4, PR_ATOMIC|PR_ADDR, 575 mroute_encap_input, 0, 0, rip_ctloutput, 576 0, --- 1349 unchanged lines hidden --- |