struct channel_oil *c_oil;
for (ALL_LIST_ELEMENTS_RO(qpim_channel_oil_list, node, c_oil)) {
- if (pim_mroute_add(&c_oil->oil)) {
+ if (pim_mroute_add(c_oil)) {
/* just log warning */
char source_str[100];
char group_str[100];
struct channel_oil *c_oil;
for (ALL_LIST_ELEMENTS_RO(qpim_channel_oil_list, node, c_oil)) {
- if (pim_mroute_del(&c_oil->oil)) {
+ if (pim_mroute_del(c_oil)) {
/* just log warning */
char source_str[100];
char group_str[100];
struct static_route *s_route;
for (ALL_LIST_ELEMENTS_RO(qpim_static_route_list, node, s_route)) {
- if (pim_mroute_add(&s_route->c_oil.oil)) {
+ if (pim_mroute_add(&s_route->c_oil)) {
/* just log warning */
char source_str[100];
char group_str[100];
struct static_route *s_route;
for (ALL_LIST_ELEMENTS_RO(qpim_static_route_list, node, s_route)) {
- if (pim_mroute_del(&s_route->c_oil.oil)) {
+ if (pim_mroute_del(&s_route->c_oil)) {
/* just log warning */
char source_str[100];
char group_str[100];
return 0;
}
-int pim_mroute_add(struct mfcctl *mc)
+int pim_mroute_add(struct channel_oil *c_oil)
{
int err;
int orig = 0;
* vif to be part of the outgoing list
* in the case of a (*,G).
*/
- if (mc->mfcc_origin.s_addr == INADDR_ANY)
+ if (c_oil->oil.mfcc_origin.s_addr == INADDR_ANY)
{
- orig = mc->mfcc_ttls[mc->mfcc_parent];
- mc->mfcc_ttls[mc->mfcc_parent] = 1;
+ orig = c_oil->oil.mfcc_ttls[c_oil->oil.mfcc_parent];
+ c_oil->oil.mfcc_ttls[c_oil->oil.mfcc_parent] = 1;
}
err = setsockopt(qpim_mroute_socket_fd, IPPROTO_IP, MRT_ADD_MFC,
- mc, sizeof(*mc));
+ &c_oil->oil, sizeof(c_oil->oil));
- if (mc->mfcc_origin.s_addr == INADDR_ANY)
- mc->mfcc_ttls[mc->mfcc_parent] = orig;
+ if (c_oil->oil.mfcc_origin.s_addr == INADDR_ANY)
+ c_oil->oil.mfcc_ttls[c_oil->oil.mfcc_parent] = orig;
if (err) {
int e = errno;
return 0;
}
-int pim_mroute_del(struct mfcctl *mc)
+int pim_mroute_del (struct channel_oil *c_oil)
{
int err;
return -1;
}
- err = setsockopt(qpim_mroute_socket_fd, IPPROTO_IP, MRT_DEL_MFC, mc, sizeof(*mc));
+ err = setsockopt(qpim_mroute_socket_fd, IPPROTO_IP, MRT_DEL_MFC, &c_oil->oil, sizeof(c_oil->oil));
if (err) {
int e = errno;
zlog_warn("%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_DEL_MFC): errno=%d: %s",
int pim_mroute_add_vif(struct interface *ifp, struct in_addr ifaddr, unsigned char flags);
int pim_mroute_del_vif(int vif_index);
-int pim_mroute_add(struct mfcctl *mc);
-int pim_mroute_del(struct mfcctl *mc);
+int pim_mroute_add(struct channel_oil *c_oil);
+int pim_mroute_del(struct channel_oil *c_oil);
int pim_mroute_msg(int fd, const char *buf, int buf_size);
channel_oil->oil.mfcc_ttls[pim_ifp->mroute_vif_index] = PIM_MROUTE_MIN_TTL;
- if (pim_mroute_add(&channel_oil->oil)) {
+ if (pim_mroute_add(channel_oil)) {
if (PIM_DEBUG_MROUTE)
{
char group_str[100];
listnode_add(qpim_static_route_list, s_route);
}
- if (pim_mroute_add(&s_route->c_oil.oil))
+ if (pim_mroute_add(&s_route->c_oil))
{
char gifaddr_str[100];
char sifaddr_str[100];
/* If there are no more outputs then delete the whole route, otherwise set the route with the new outputs */
if (s_route->c_oil.oil_ref_count <= 0 ?
- pim_mroute_del(&s_route->c_oil.oil) : pim_mroute_add(&s_route->c_oil.oil)) {
+ pim_mroute_del(&s_route->c_oil) : pim_mroute_add(&s_route->c_oil)) {
char gifaddr_str[100];
char sifaddr_str[100];
pim_inet4_dump("<ifaddr?>", group, gifaddr_str, sizeof(gifaddr_str));
zlog_debug ("FF");
/* update kernel multicast forwarding cache (MFC) */
- if (pim_mroute_add(&c_oil->oil))
+ if (pim_mroute_add(c_oil))
{
/* just log warning */
struct interface *old_iif = pim_if_find_by_vif_index(old_vif_index);
channel_oil->oil.mfcc_ttls[pim_ifp->mroute_vif_index] = 0;
- if (pim_mroute_add(&channel_oil->oil)) {
+ if (pim_mroute_add(channel_oil)) {
char group_str[100];
char source_str[100];
pim_inet4_dump("<group?>", channel_oil->oil.mfcc_mcastgrp, group_str, sizeof(group_str));
--channel_oil->oil_size;
if (channel_oil->oil_size < 1) {
- if (pim_mroute_del(&channel_oil->oil)) {
+ if (pim_mroute_del(channel_oil)) {
/* just log a warning in case of failure */
char group_str[100];
char source_str[100];