]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_mroute.h
Merge pull request #3502 from donaldsharp/socket_to_me_baby
[mirror_frr.git] / pimd / pim_mroute.h
index 36dce8e610334e12e7e430588102a023d643e099..bd71acbf82cab506d7e05a161ea575585f0d4c63 100644 (file)
 #define MRT_PIM      (MRT_BASE+8)    /* enable PIM code      */
 #endif
 
+#ifndef MRT_TABLE
+#define MRT_TABLE    (209)           /* Specify mroute table ID */
+#endif
+
 #ifndef HAVE_VIFI_T
 typedef unsigned short vifi_t;
 #endif
 
 #ifndef HAVE_STRUCT_VIFCTL
 struct vifctl {
-       vifi_t  vifc_vifi;              /* Index of VIF */
-       unsigned char vifc_flags;       /* VIFF_ flags */
-       unsigned char vifc_threshold;   /* ttl limit */
-       unsigned int vifc_rate_limit;   /* Rate limiter values (NI) */
-       struct in_addr vifc_lcl_addr;   /* Our address */
-       struct in_addr vifc_rmt_addr;   /* IPIP tunnel addr */
+       vifi_t vifc_vifi;            /* Index of VIF */
+       unsigned char vifc_flags;     /* VIFF_ flags */
+       unsigned char vifc_threshold; /* ttl limit */
+       unsigned int vifc_rate_limit; /* Rate limiter values (NI) */
+       struct in_addr vifc_lcl_addr; /* Our address */
+       struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */
 };
 #endif
 
 #ifndef HAVE_STRUCT_MFCCTL
 struct mfcctl {
-  struct in_addr mfcc_origin;             /* Origin of mcast      */
-  struct in_addr mfcc_mcastgrp;           /* Group in question    */
-  vifi_t         mfcc_parent;             /* Where it arrived     */
-  unsigned char  mfcc_ttls[MAXVIFS];      /* Where it is going    */
-  unsigned int   mfcc_pkt_cnt;            /* pkt count for src-grp */
-  unsigned int   mfcc_byte_cnt;
-  unsigned int   mfcc_wrong_if;
-  int            mfcc_expire;
+       struct in_addr mfcc_origin;       /* Origin of mcast      */
+       struct in_addr mfcc_mcastgrp;     /* Group in question    */
+       vifi_t mfcc_parent;               /* Where it arrived     */
+       unsigned char mfcc_ttls[MAXVIFS]; /* Where it is going    */
+       unsigned int mfcc_pkt_cnt;      /* pkt count for src-grp */
+       unsigned int mfcc_byte_cnt;
+       unsigned int mfcc_wrong_if;
+       int mfcc_expire;
 };
 #endif
 
@@ -107,11 +111,11 @@ struct mfcctl {
  */
 #ifndef HAVE_STRUCT_SIOC_SG_REQ
 struct sioc_sg_req {
-  struct in_addr src;
-  struct in_addr grp;
-  unsigned long pktcnt;
-  unsigned long bytecnt;
-  unsigned long wrong_if;
+       struct in_addr src;
+       struct in_addr grp;
+       unsigned long pktcnt;
+       unsigned long bytecnt;
+       unsigned long wrong_if;
 };
 #endif
 
@@ -126,11 +130,11 @@ struct sioc_sg_req {
  */
 #ifndef HAVE_STRUCT_SIOC_VIF_REQ
 struct sioc_vif_req {
-  vifi_t  vifi;           /* Which iface */
-  unsigned long icount;   /* In packets */
-  unsigned long ocount;   /* Out packets */
-  unsigned long ibytes;   /* In bytes */
-  unsigned long obytes;   /* Out bytes */
+       vifi_t vifi;      /* Which iface */
+       unsigned long icount; /* In packets */
+       unsigned long ocount; /* Out packets */
+       unsigned long ibytes; /* In bytes */
+       unsigned long obytes; /* Out bytes */
 };
 #endif
 
@@ -144,14 +148,13 @@ struct sioc_vif_req {
 #endif
 
 #ifndef HAVE_STRUCT_IGMPMSG
-struct igmpmsg
-{
-  uint32_t unused1,unused2;
-  unsigned char im_msgtype;               /* What is this */
-  unsigned char im_mbz;                   /* Must be zero */
-  unsigned char im_vif;                   /* Interface (this ought to be a vifi_t!) */
-  unsigned char unused3;
-  struct in_addr im_src,im_dst;
+struct igmpmsg {
+       uint32_t unused1, unused2;
+       unsigned char im_msgtype; /* What is this */
+       unsigned char im_mbz;     /* Must be zero */
+       unsigned char im_vif;     /* Interface (this ought to be a vifi_t!) */
+       unsigned char unused3;
+       struct in_addr im_src, im_dst;
 };
 #endif
 #endif
@@ -164,16 +167,15 @@ struct igmpmsg
   Above: from <linux/mroute.h>
 */
 
-int pim_mroute_socket_enable(void);
-int pim_mroute_socket_disable(void);
+int pim_mroute_socket_enable(struct pim_instance *pim);
+int pim_mroute_socket_disable(struct pim_instance *pim);
 
-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_vif(struct interface *ifp, struct in_addr ifaddr,
+                      unsigned char flags);
+int pim_mroute_del_vif(struct interface *ifp);
 
 int pim_mroute_add(struct channel_oil *c_oil, const char *name);
 int pim_mroute_del(struct channel_oil *c_oil, const char *name);
 
-int pim_mroute_msg(int fd, const char *buf, int buf_size);
-
-void pim_mroute_update_counters (struct channel_oil *c_oil);
+void pim_mroute_update_counters(struct channel_oil *c_oil);
 #endif /* PIM_MROUTE_H */