]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_oil.h
pimd: update add_oif and del_oif debugs to print caller
[mirror_frr.git] / pimd / pim_oil.h
index 5dd4e8b326a38e963a545507b49a38629257b3f8..3d4488a42275b1cd44ff692d8738c785d9eafe8c 100644 (file)
  */
 #define PIM_OIF_FLAG_PROTO_IGMP   (1 << 0)
 #define PIM_OIF_FLAG_PROTO_PIM    (1 << 1)
-#define PIM_OIF_FLAG_PROTO_SOURCE (1 << 2)
-#define PIM_OIF_FLAG_PROTO_STAR   (1 << 3)
-#define PIM_OIF_FLAG_PROTO_ANY                                                 \
-       (PIM_OIF_FLAG_PROTO_IGMP | PIM_OIF_FLAG_PROTO_PIM                      \
-        | PIM_OIF_FLAG_PROTO_SOURCE | PIM_OIF_FLAG_PROTO_STAR)
+#define PIM_OIF_FLAG_PROTO_STAR   (1 << 2)
+#define PIM_OIF_FLAG_PROTO_VXLAN  (1 << 3)
+#define PIM_OIF_FLAG_PROTO_ANY                                 \
+       (PIM_OIF_FLAG_PROTO_IGMP | PIM_OIF_FLAG_PROTO_PIM      \
+        | PIM_OIF_FLAG_PROTO_STAR | PIM_OIF_FLAG_PROTO_VXLAN)
 
 /*
  * We need a pimreg vif id from the kernel.
 
 struct channel_counts {
        unsigned long long lastused;
+       unsigned long origpktcnt;
        unsigned long pktcnt;
        unsigned long oldpktcnt;
+       unsigned long origbytecnt;
        unsigned long bytecnt;
        unsigned long oldbytecnt;
+       unsigned long origwrong_if;
        unsigned long wrong_if;
        unsigned long oldwrong_if;
 };
@@ -97,6 +100,7 @@ struct channel_oil {
        uint32_t oif_flags[MAXVIFS];
        struct channel_counts cc;
        struct pim_upstream *up;
+       time_t mroute_creation;
 };
 
 extern struct list *pim_channel_oil_list;
@@ -109,13 +113,16 @@ struct channel_oil *pim_find_channel_oil(struct pim_instance *pim,
                                         struct prefix_sg *sg);
 struct channel_oil *pim_channel_oil_add(struct pim_instance *pim,
                                        struct prefix_sg *sg,
-                                       int input_vif_index);
-void pim_channel_oil_del(struct channel_oil *c_oil);
+                                       int input_vif_index, const char *name);
+void pim_channel_oil_change_iif(struct pim_instance *pim,
+                               struct channel_oil *c_oil, int input_vif_index,
+                               const char *name);
+void pim_channel_oil_del(struct channel_oil *c_oil, const char *name);
 
 int pim_channel_add_oif(struct channel_oil *c_oil, struct interface *oif,
-                       uint32_t proto_mask);
+                       uint32_t proto_mask, const char *caller);
 int pim_channel_del_oif(struct channel_oil *c_oil, struct interface *oif,
-                       uint32_t proto_mask);
+                       uint32_t proto_mask, const char *caller);
 
 int pim_channel_oil_empty(struct channel_oil *c_oil);