]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_msdp.h
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / pimd / pim_msdp.h
index 88bef4bc7994ce169a96919da1764cd913b9535e..8363d509915ac7953c9a7a2419501386cda24bbe 100644 (file)
@@ -74,6 +74,8 @@ enum pim_msdp_sa_flags {
 };
 
 struct pim_msdp_sa {
+       struct pim_instance *pim;
+
        struct prefix_sg sg;
        char sg_str[PIM_SG_LEN];
        struct in_addr rp;   /* Last RP address associated with this SA */
@@ -97,6 +99,8 @@ enum pim_msdp_peer_flags {
 };
 
 struct pim_msdp_peer {
+       struct pim_instance *pim;
+
        /* configuration */
        struct in_addr local;
        struct in_addr peer;
@@ -115,12 +119,8 @@ struct pim_msdp_peer {
 /* protocol timers */
 #define PIM_MSDP_PEER_HOLD_TIME 75
        struct thread *hold_timer; // 5.4
-                                  /* $FRR indent$ */
-/* clang-format off */
 #define PIM_MSDP_PEER_KA_TIME 60
        struct thread *ka_timer; // 5.5
-                                /* $FRR indent$ */
-                                /* clang-format off */
 #define PIM_MSDP_PEER_CONNECT_RETRY_TIME 30
        struct thread *cr_timer; // 5.6
 
@@ -135,8 +135,6 @@ struct pim_msdp_peer {
        uint32_t conn_attempts;
        uint32_t est_flaps;
        uint32_t sa_cnt; /* number of SAs attributed to this peer */
-                        /* $FRR indent$ */
-                        /* clang-format off */
 #define PIM_MSDP_PEER_LAST_RESET_STR 20
        char last_reset[PIM_MSDP_PEER_LAST_RESET_STR];
 
@@ -203,11 +201,11 @@ struct pim_msdp {
 };
 
 #define PIM_MSDP_PEER_READ_ON(mp)                                              \
-       thread_add_read(pimg->msdp.master, pim_msdp_read, mp, mp->fd,          \
+       thread_add_read(mp->pim->msdp.master, pim_msdp_read, mp, mp->fd,       \
                        &mp->t_read)
 
 #define PIM_MSDP_PEER_WRITE_ON(mp)                                             \
-       thread_add_write(pimg->msdp.master, pim_msdp_write, mp, mp->fd,        \
+       thread_add_write(mp->pim->msdp.master, pim_msdp_write, mp, mp->fd,     \
                         &mp->t_write)
 
 #define PIM_MSDP_PEER_READ_OFF(mp) THREAD_READ_OFF(mp->t_read)
@@ -215,15 +213,18 @@ struct pim_msdp {
 
 // struct pim_msdp *msdp;
 struct pim_instance;
-void pim_msdp_init(struct thread_master *master, struct pim_instance *pim);
+void pim_msdp_init(struct pim_instance *pim, struct thread_master *master);
 void pim_msdp_exit(struct pim_instance *pim);
-enum pim_msdp_err pim_msdp_peer_add(struct in_addr peer, struct in_addr local,
+enum pim_msdp_err pim_msdp_peer_add(struct pim_instance *pim,
+                                   struct in_addr peer, struct in_addr local,
                                    const char *mesh_group_name,
                                    struct pim_msdp_peer **mp_p);
-enum pim_msdp_err pim_msdp_peer_del(struct in_addr peer_addr);
+enum pim_msdp_err pim_msdp_peer_del(struct pim_instance *pim,
+                                   struct in_addr peer_addr);
 char *pim_msdp_state_dump(enum pim_msdp_peer_state state, char *buf,
                          int buf_size);
-struct pim_msdp_peer *pim_msdp_peer_find(struct in_addr peer_addr);
+struct pim_msdp_peer *pim_msdp_peer_find(struct pim_instance *pim,
+                                        struct in_addr peer_addr);
 void pim_msdp_peer_established(struct pim_msdp_peer *mp);
 void pim_msdp_peer_pkt_rxed(struct pim_msdp_peer *mp);
 void pim_msdp_peer_stop_tcp_conn(struct pim_msdp_peer *mp, bool chg_state);
@@ -232,21 +233,29 @@ int pim_msdp_write(struct thread *thread);
 char *pim_msdp_peer_key_dump(struct pim_msdp_peer *mp, char *buf, int buf_size,
                             bool long_format);
 int pim_msdp_config_write(struct vty *vty);
+int pim_msdp_config_write_helper(struct pim_instance *pim, struct vty *vty,
+                                const char *spaces);
 void pim_msdp_peer_pkt_txed(struct pim_msdp_peer *mp);
-void pim_msdp_sa_ref(struct pim_msdp_peer *mp, struct prefix_sg *sg,
-                    struct in_addr rp);
+void pim_msdp_sa_ref(struct pim_instance *pim, struct pim_msdp_peer *mp,
+                    struct prefix_sg *sg, struct in_addr rp);
 void pim_msdp_sa_local_update(struct pim_upstream *up);
-void pim_msdp_sa_local_del(struct prefix_sg *sg);
-void pim_msdp_i_am_rp_changed(void);
+void pim_msdp_sa_local_del(struct pim_instance *pim, struct prefix_sg *sg);
+void pim_msdp_i_am_rp_changed(struct pim_instance *pim);
 bool pim_msdp_peer_rpf_check(struct pim_msdp_peer *mp, struct in_addr rp);
-void pim_msdp_up_join_state_changed(struct pim_upstream *xg_up);
-void pim_msdp_up_del(struct prefix_sg *sg);
-enum pim_msdp_err pim_msdp_mg_mbr_add(const char *mesh_group_name,
+void pim_msdp_up_join_state_changed(struct pim_instance *pim,
+                                   struct pim_upstream *xg_up);
+void pim_msdp_up_del(struct pim_instance *pim, struct prefix_sg *sg);
+enum pim_msdp_err pim_msdp_mg_mbr_add(struct pim_instance *pim,
+                                     const char *mesh_group_name,
                                      struct in_addr mbr_ip);
-enum pim_msdp_err pim_msdp_mg_mbr_del(const char *mesh_group_name,
+enum pim_msdp_err pim_msdp_mg_mbr_del(struct pim_instance *pim,
+                                     const char *mesh_group_name,
                                      struct in_addr mbr_ip);
-enum pim_msdp_err pim_msdp_mg_src_del(const char *mesh_group_name);
-enum pim_msdp_err pim_msdp_mg_src_add(const char *mesh_group_name,
+enum pim_msdp_err pim_msdp_mg_src_del(struct pim_instance *pim,
+                                     const char *mesh_group_name);
+enum pim_msdp_err pim_msdp_mg_src_add(struct pim_instance *pim,
+                                     const char *mesh_group_name,
                                      struct in_addr src_ip);
-enum pim_msdp_err pim_msdp_mg_del(const char *mesh_group_name);
+enum pim_msdp_err pim_msdp_mg_del(struct pim_instance *pim,
+                                 const char *mesh_group_name);
 #endif