MCPcopy Create free account
hub / github.com/F-Stack/f-stack / igmp_dispatch_queue

Function igmp_dispatch_queue

freebsd/netinet/igmp.c:548–564  ·  view source on GitHub ↗

* Dispatch an entire queue of pending packet chains * using the netisr. * VIMAGE: Assumes the vnet pointer has been set. */

Source from the content-addressed store, hash-verified

546 * VIMAGE: Assumes the vnet pointer has been set.
547 */
548static void
549igmp_dispatch_queue(struct mbufq *mq, int limit, const int loop)
550{
551 struct epoch_tracker et;
552 struct mbuf *m;
553
554 NET_EPOCH_ENTER(et);
555 while ((m = mbufq_dequeue(mq)) != NULL) {
556 CTR3(KTR_IGMPV3, "%s: dispatch %p from %p", __func__, mq, m);
557 if (loop)
558 m->m_flags |= M_IGMP_LOOP;
559 netisr_dispatch(NETISR_IGMP, m);
560 if (--limit == 0)
561 break;
562 }
563 NET_EPOCH_EXIT(et);
564}
565
566/*
567 * Filter outgoing IGMP report state by group.

Callers 2

igmp_fasttimo_vnetFunction · 0.85

Calls 2

netisr_dispatchFunction · 0.85
mbufq_dequeueFunction · 0.50

Tested by

no test coverage detected