[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[qpimd-users] Re: querry related with pim ssm
From: |
Everton Marques |
Subject: |
[qpimd-users] Re: querry related with pim ssm |
Date: |
Thu, 11 Feb 2010 13:12:35 -0200 |
Hi Bhavin,
On Thu, Feb 11, 2010 at 12:00 PM, <address@hidden> wrote:
>
> (1) Why is pim_mroute_add(&channel_oil->oil) function is called from the
> del_oif function in the file pim_zebra.c while we want to delete the
> S,G entry from MFC. (Which is done later on in the function del_oif ).
The kernel mroute API expects "struct mfcctl" to define the the whole
OIL (output interface list) for an S,G entry in the kernel. In order
to add/del specific interfaces to/from the OIL, one is supposed to
update the the array mfcctl.mfcc_ttls[] accordingly and then call
setsockopt(MRT_ADD_MFC) to deliver that information to the kernel MFC.
pim_mroute_add() is used either to add a completely new S,G entry, as
well as update the OIL for an existing S,G entry.
del_oif() purpose is to remove an specific interface from OIL. It does
so by removing the the interface from mfcctl.mfcc_ttls[] and then
calling pim_mroute_add() to send such an update towards the kernel.
> (2) What is done by the function static int on_rpf_cache_refresh (struct
> thread *t) in the file pim_zebra.c since it calls pim_mroute_add which will
> add an entry to the MFC?
The purpose on_rpf_cache_refresh() is to verify if the RPF information
for some S,G entry
has changed; if so, the kernel MFC must be updated accordingly.
on_rpf_cache_refresh() uses pim_mroute_add() to update an existing S,G
entry, not to create a new one.
Cheers,
Everton