Use preferences properly.

This commit is contained in:
Martin Mares 2000-05-08 10:40:00 +00:00
parent 1151401e2b
commit 916c8c0aba
4 changed files with 5 additions and 3 deletions

View file

@ -351,10 +351,10 @@ extern struct protocol *attr_class_to_protocol[EAP_MAX];
#define DEF_PREF_DIRECT 240 /* Directly connected */ #define DEF_PREF_DIRECT 240 /* Directly connected */
#define DEF_PREF_STATIC 200 /* Static route */ #define DEF_PREF_STATIC 200 /* Static route */
#define DEF_PREF_OSPF_INTERNAL 150 /* OSPF intra-area, inter-area and type 1 external routes */ #define DEF_PREF_OSPF 150 /* OSPF intra-area, inter-area and type 1 external routes */
#define DEF_PREF_RIP 120 /* RIP */ #define DEF_PREF_RIP 120 /* RIP */
#define DEF_PREF_BGP 100 /* BGP */ #define DEF_PREF_BGP 100 /* BGP */
#define DEF_PREF_OSPF_EXTERNAL 80 /* OSPF external routes */
#define DEF_PREF_PIPE 70 /* Routes piped from other tables */ #define DEF_PREF_PIPE 70 /* Routes piped from other tables */
#define DEF_PREF_INHERITED 10 /* Routes inherited from other routing daemons */
#endif #endif

View file

@ -20,6 +20,7 @@ CF_ADDTO(proto, ospf_proto '}')
ospf_proto_start: proto_start OSPF { ospf_proto_start: proto_start OSPF {
this_proto = proto_config_new(&proto_ospf, sizeof(struct ospf_config)); this_proto = proto_config_new(&proto_ospf, sizeof(struct ospf_config));
this_proto->preference = DEF_PREF_OSPF;
} }
; ;

View file

@ -211,6 +211,7 @@ again:
e->u.ospf.tag=0; /* FIXME Some config? */ e->u.ospf.tag=0; /* FIXME Some config? */
e->pflags = 0; e->pflags = 0;
e->net=ne; e->net=ne;
e->pref = p->preference;
DBG("Modifying rt entry %I\n (IP: %I, GW: %I, Iface: %s)\n", DBG("Modifying rt entry %I\n (IP: %I, GW: %I, Iface: %s)\n",
nf->fn.prefix,ip,en->nh,en->nhi->name); nf->fn.prefix,ip,en->nh,en->nhi->name);
rte_update(p->table, ne, p, e); rte_update(p->table, ne, p, e);

View file

@ -31,7 +31,7 @@ kern_proto_start: proto_start KERNEL {
cf_error("Kernel protocol already defined"); cf_error("Kernel protocol already defined");
#endif #endif
cf_krt = this_proto = proto_config_new(&proto_unix_kernel, sizeof(struct krt_config)); cf_krt = this_proto = proto_config_new(&proto_unix_kernel, sizeof(struct krt_config));
this_proto->preference = 0; this_proto->preference = DEF_PREF_INHERITED;
THIS_KRT->scan_time = 60; THIS_KRT->scan_time = 60;
THIS_KRT->learn = THIS_KRT->persist = 0; THIS_KRT->learn = THIS_KRT->persist = 0;
krt_scan_construct(THIS_KRT); krt_scan_construct(THIS_KRT);