]> git.proxmox.com Git - mirror_frr.git/commitdiff
pimd: Remove pimg from pim_register.c
authorDonald Sharp <sharpd@cumulusnetworks.com>
Sat, 20 May 2017 17:54:31 +0000 (13:54 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 24 Jul 2017 17:51:36 +0000 (13:51 -0400)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_pim.c
pimd/pim_register.c
pimd/pim_register.h

index 51b8e9a1cbd59883861faee58124823e535c28dd..8e8075e2a0d8b3f1d61276501f8a83e5b1a02ced 100644 (file)
@@ -238,7 +238,7 @@ int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len)
                                         pim_msg_len - PIM_MSG_HEADER_LEN);
                break;
        case PIM_MSG_TYPE_REG_STOP:
-               return pim_register_stop_recv(pim_msg + PIM_MSG_HEADER_LEN,
+               return pim_register_stop_recv(ifp, pim_msg + PIM_MSG_HEADER_LEN,
                                              pim_msg_len - PIM_MSG_HEADER_LEN);
                break;
        case PIM_MSG_TYPE_JOIN_PRUNE:
index bc7c5e3e0fe655b596e9bc6ab86d383c18a7decc..8ba030d2dcca715ff171cc9701a798764d93e405 100644 (file)
@@ -109,8 +109,10 @@ void pim_register_stop_send(struct interface *ifp, struct prefix_sg *sg,
        ++pinfo->pim_ifstat_reg_stop_send;
 }
 
-int pim_register_stop_recv(uint8_t *buf, int buf_size)
+int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size)
 {
+       struct pim_interface *pim_ifp = ifp->info;
+       struct pim_instance *pim = pim_ifp->pim;
        struct pim_upstream *upstream = NULL;
        struct prefix source;
        struct prefix_sg sg;
@@ -123,7 +125,7 @@ int pim_register_stop_recv(uint8_t *buf, int buf_size)
        pim_parse_addr_ucast(&source, buf, buf_size);
        sg.src = source.u.prefix4;
 
-       upstream = pim_upstream_find(pimg, &sg);
+       upstream = pim_upstream_find(pim, &sg);
        if (!upstream) {
                return 0;
        }
@@ -138,7 +140,7 @@ int pim_register_stop_recv(uint8_t *buf, int buf_size)
                break;
        case PIM_REG_JOIN:
                upstream->reg_state = PIM_REG_PRUNE;
-               pim_channel_del_oif(upstream->channel_oil, pimg->regiface,
+               pim_channel_del_oif(upstream->channel_oil, pim->regiface,
                                    PIM_OIF_FLAG_PROTO_PIM);
                pim_upstream_start_register_stop_timer(upstream, 0);
                break;
index ad3deb2b246439e708f1bbd0f3b2df2a028eca81..906d093bb76ba575562750403c205f616d4e50f4 100644 (file)
@@ -30,7 +30,7 @@
 #define PIM_MSG_REGISTER_LEN   (8)
 #define PIM_MSG_REGISTER_STOP_LEN (4)
 
-int pim_register_stop_recv(uint8_t *buf, int buf_size);
+int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size);
 
 int pim_register_recv(struct interface *ifp, struct in_addr dest_addr,
                      struct in_addr src_addr, uint8_t *tlv_buf,