]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_pim.h
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / pimd / pim_pim.h
index 5692a37938de1718a0bdd9b44b849dfaebd8c279..e930ab7c2db5c118d304d4bfac55df9f10d8d7ec 100644 (file)
@@ -1,22 +1,21 @@
 /*
-  PIM for Quagga
-  Copyright (C) 2008  Everton da Silva Marques
-
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  General Public License for more details.
-  
-  You should have received a copy of the GNU General Public License
-  along with this program; see the file COPYING; if not, write to the
-  Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-  MA 02110-1301 USA
-*/
+ * PIM for Quagga
+ * Copyright (C) 2008  Everton da Silva Marques
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; see the file COPYING; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
 
 #ifndef PIM_PIM_H
 #define PIM_PIM_H
@@ -28,8 +27,6 @@
 #define PIM_PIM_BUFSIZE_READ  (20000)
 #define PIM_PIM_BUFSIZE_WRITE (20000)
 
-#define PIM_NEXTHOP_IFINDEX_TAB_SIZE (20)
-
 #define PIM_DEFAULT_HELLO_PERIOD                 (30)   /* seconds, RFC 4601: 4.11 */
 #define PIM_DEFAULT_TRIGGERED_HELLO_DELAY        (5)    /* seconds, RFC 4601: 4.11 */
 #define PIM_DEFAULT_DR_PRIORITY                  (1)    /* RFC 4601: 4.3.1 */
 #define PIM_DEFAULT_CAN_DISABLE_JOIN_SUPPRESSION (0)    /* boolean */
 #define PIM_DEFAULT_T_PERIODIC                   (60)   /* RFC 4601: 4.11.  Timer Values */
 
-#define PIM_MSG_TYPE_HELLO      (0)
-#define PIM_MSG_TYPE_REGISTER   (1)
-#define PIM_MSG_TYPE_REG_STOP   (2)
-#define PIM_MSG_TYPE_JOIN_PRUNE (3)
-#define PIM_MSG_TYPE_BOOTSTRAP  (4)
-#define PIM_MSG_TYPE_ASSERT     (5)
-#define PIM_MSG_TYPE_GRAFT      (6)
-#define PIM_MSG_TYPE_GRAFT_ACK  (7)
-#define PIM_MSG_TYPE_CANDIDATE  (8)
-
-#define PIM_MSG_HDR_OFFSET_VERSION(pim_msg) (pim_msg)
-#define PIM_MSG_HDR_OFFSET_TYPE(pim_msg) (pim_msg)
-#define PIM_MSG_HDR_OFFSET_RESERVED(pim_msg) (((char *)(pim_msg)) + 1)
-#define PIM_MSG_HDR_OFFSET_CHECKSUM(pim_msg) (((char *)(pim_msg)) + 2)
-
-#define PIM_MSG_HDR_GET_VERSION(pim_msg) ((*(uint8_t*) PIM_MSG_HDR_OFFSET_VERSION(pim_msg)) >> 4)
-#define PIM_MSG_HDR_GET_TYPE(pim_msg) ((*(uint8_t*) PIM_MSG_HDR_OFFSET_TYPE(pim_msg)) & 0xF)
-#define PIM_MSG_HDR_GET_CHECKSUM(pim_msg) (*(uint16_t*) PIM_MSG_HDR_OFFSET_CHECKSUM(pim_msg))
+enum pim_msg_type {
+       PIM_MSG_TYPE_HELLO = 0,
+       PIM_MSG_TYPE_REGISTER,
+       PIM_MSG_TYPE_REG_STOP,
+       PIM_MSG_TYPE_JOIN_PRUNE,
+       PIM_MSG_TYPE_BOOTSTRAP,
+       PIM_MSG_TYPE_ASSERT,
+       PIM_MSG_TYPE_GRAFT,
+       PIM_MSG_TYPE_GRAFT_ACK,
+       PIM_MSG_TYPE_CANDIDATE
+};
 
 void pim_ifstat_reset(struct interface *ifp);
 void pim_sock_reset(struct interface *ifp);
@@ -66,10 +56,7 @@ void pim_hello_restart_triggered(struct interface *ifp);
 
 int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len);
 
-int pim_msg_send(int fd,
-                struct in_addr dst,
-                uint8_t *pim_msg,
-                int pim_msg_size,
-                const char *ifname);
+int pim_msg_send(int fd, struct in_addr src, struct in_addr dst,
+                uint8_t *pim_msg, int pim_msg_size, const char *ifname);
 
 #endif /* PIM_PIM_H */