]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_redist.h
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / isisd / isis_redist.h
index 11b3c31e24cdf3be1dfc423525c873b764df33b4..9c37c310eae8e61dfa00c8a7fd9d0b639a590629 100644 (file)
@@ -3,14 +3,14 @@
  *
  * Copyright (C) 2013-2015 Christian Franke <chris@opensourcerouting.org>
  *
- * 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) 
+ * 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 
+ * 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
 #define DEFAULT_ORIGINATE 1
 #define DEFAULT_ORIGINATE_ALWAYS 2
 
-struct isis_ext_info
-{
-  int origin;
-  uint32_t metric;
-  u_char distance;
+struct isis_ext_info {
+       int origin;
+       uint32_t metric;
+       uint8_t distance;
 };
 
-struct isis_redist
-{
-  int redist;
-  uint32_t metric;
-  char *map_name;
-  struct route_map *map;
+struct isis_redist {
+       int redist;
+       uint32_t metric;
+       char *map_name;
+       struct route_map *map;
 };
 
 struct isis_area;
 struct prefix;
+struct prefix_ipv6;
 struct vty;
 
-struct route_table *get_ext_reach(struct isis_area *area,
-                                  int family, int level);
-void isis_redist_add(int type, struct prefix *p,
-                     u_char distance, uint32_t metric);
-void isis_redist_delete(int type, struct prefix *p);
+struct route_table *get_ext_reach(struct isis_area *area, int family,
+                                 int level);
+void isis_redist_add(int type, struct prefix *p, struct prefix_ipv6 *src_p,
+                    uint8_t distance, uint32_t metric);
+void isis_redist_delete(int type, struct prefix *p, struct prefix_ipv6 *src_p);
 int isis_redist_config_write(struct vty *vty, struct isis_area *area,
-                             int family);
+                            int family);
 void isis_redist_init(void);
 void isis_redist_area_finish(struct isis_area *area);
 
+void isis_redist_set(struct isis_area *area, int level, int family, int type,
+                    uint32_t metric, const char *routemap, int originate_type);
+void isis_redist_unset(struct isis_area *area, int level, int family, int type);
+
 #endif