summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_route.h
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2009-08-24 11:48:34 +0000
committerDavid Lamparter <equinox@diac24.net>2010-02-04 01:18:21 +0100
commit58bfa5562817306f14cd7d41953a2740056e1afc (patch)
treea8cf512088255220ce493279229aed05670cde51 /ospfd/ospf_route.h
parentf03edb371c3e0b389f15600ceb283055033085e6 (diff)
downloadquagga-58bfa5562817306f14cd7d41953a2740056e1afc.tar.bz2
quagga-58bfa5562817306f14cd7d41953a2740056e1afc.tar.xz
ospfd: Add new host route command
Add static host routes into router LSA. See RFC 2328 chapter 12.4 and Appendix C.7 Syntax: router ospf ip ospf host A.B.C.D area (A.B.C.D|<0-4294967295>|all) cost <0-65535> no ip ospf host A.B.C.D area (A.B.C.D|<0-4294967295>|all) * ospfd/ospf_route.h: Add struct ospf_host_route * ospfd/ospf_lsa.c: (router_lsa_link_set) Add host routes to Router LSA. * ospfd/ospf_vtc.c: Impl. ip_ospf_host_cmd and no_ip_ospf_host_cmd. (ospf_config_write) Write out host routes to config. * ospfd/ospf_ospfd.c: (ospf_new) Allocate new host route list. (ospf_finish_filnal) Free host list. (ospf_area_check_free) Check if any host routes in area before freeing. * ospfd/ospf_ospfd.h: Add a host list to struct ospf.
Diffstat (limited to 'ospfd/ospf_route.h')
-rw-r--r--ospfd/ospf_route.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/ospfd/ospf_route.h b/ospfd/ospf_route.h
index 17ab68e5..5483aaf5 100644
--- a/ospfd/ospf_route.h
+++ b/ospfd/ospf_route.h
@@ -121,6 +121,12 @@ struct ospf_route
} u;
};
+struct ospf_host_route {
+ struct in_addr host_addr;
+ u_int32_t cost; /* i.e. metric. */
+ struct ospf_area *area; /* NULL == all areas */
+};
+
extern struct ospf_path *ospf_path_new (void);
extern void ospf_path_free (struct ospf_path *);
extern struct ospf_path *ospf_path_lookup (struct list *, struct ospf_path *);