Discussion:
[qpimd-users] querry related with cache miss control message
b***@iitb.ac.in
2009-09-21 15:10:11 UTC
Permalink
Hello Friends,

There are 3 control messages provied by kernel while parsing multicast
packet :
(a)Cache miss
(b)Wrond iif
(c)Whole pkt.

S,G entry is entered inside the MFC. Now if any data pkt arrives and
it does not find entry inside MFC then kernel will generate the cache
miss message which can be processed and we can look in to MRT. Now my
question is
what happens to the data packet since kernel only passes the header and
control message to the user.

Thanks in advance for your help.

Regards,
Bhavin.
Everton Marques
2009-09-21 18:00:30 UTC
Permalink
Hi Bhavin,
    S,G entry is entered inside the MFC. Now if any data pkt arrives and
it does not find entry inside MFC then kernel will generate the cache
miss message which can be processed and we can look in to MRT. Now my
question is
what happens to the data packet since kernel only passes the header and
control message to the user.
I don't know the exact answer for your question, but I believe it
works as follows:

1) The Linux kernel keeps a queue of "unresolved" mcast packets
(mfc_unres_queue).

2) When a new packet arrives, if it does not match an existing MFC entry,
the kernel adds the packet to the unresolved queue and delivers an
IGMPMSG_NOCACHE message to the mroute socket.

3) If the mroute daemon fills in the MFC entry quickly enough, the queued
packets for that MFC entry are forwarded according the new entry.
Otherwise, the unresolved queue may overflow or be expired by a kernel timer.

Also, please note the pimd uses a different strategy than the one
described above.
pimd keeps all multicast routing information sync'ed with the kernel, hence
there is no reason to react to any IGMPMSG_NOCACHE message from the
kernel.

Cheers,
Everton

Loading...