Each interface needs the ability to send raw packets
at the RP. Create the data structure to do so.
Further commits will create the socket as necessary
and send the packet.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pim_ifp->options = 0;
pim_ifp->mroute_vif_index = -1;
+ pim_ifp->pim_raw_fd = -1;
pim_ifp->igmp_default_robustness_variable = IGMP_DEFAULT_ROBUSTNESS_VARIABLE;
pim_ifp->igmp_default_query_interval = IGMP_GENERAL_QUERY_INTERVAL;
pim_ifp = ifp->info;
zassert(pim_ifp);
+ if (pim_ifp->pim_raw_fd == -1)
+ {
+ close (pim_ifp->pim_raw_fd);
+ pim_ifp->pim_raw_fd = -1;
+ }
+
if (pim_ifp->igmp_join_list) {
pim_if_igmp_join_del_all(ifp);
}
struct list *igmp_join_list; /* list of struct igmp_join */
int pim_sock_fd; /* PIM socket file descriptor */
+ int pim_raw_fd; /* RP forwarding */
struct thread *t_pim_sock_read; /* thread for reading PIM socket */
int64_t pim_sock_creation; /* timestamp of PIM socket creation */