Minor cleanups.
This commit is contained in:
parent
e693ddff87
commit
476e108425
7 changed files with 30 additions and 13 deletions
24
TODO
24
TODO
|
@ -1,13 +1,17 @@
|
|||
Core
|
||||
~~~~
|
||||
- IPv6 support
|
||||
- IPv6: router advertisements
|
||||
- IPv6: test it!
|
||||
- IPv6: hashing functions etc.
|
||||
|
||||
- krt-iface: check whether the interface alias hack works
|
||||
- krt-iface and netlink: unnumberedness of tunnels
|
||||
|
||||
- counters (according to SNMP MIB?)
|
||||
- better memory allocators
|
||||
- real attribute cache
|
||||
- real neighbor cache
|
||||
|
||||
- default preferences of protocols: prefer BGP over OSPF/RIP external routes?
|
||||
- preferences of protocols
|
||||
|
||||
- static: check validity of route destination?
|
||||
- static: allow specifying a per-route filter program for setting route attributes?
|
||||
|
@ -23,12 +27,16 @@ Core
|
|||
- config: when parsing prefix, check zero bits
|
||||
- config: reconfiguration
|
||||
- config: useless rules when protocols disabled
|
||||
- config: remove protocol startup priority hacks?
|
||||
- config: better datetime format
|
||||
|
||||
- krt: rescan interfaces when route addition fails?
|
||||
- krt: does PERSIST mode have any sense if kernel syncer is shut down as last?
|
||||
|
||||
- tagging of external routes?
|
||||
|
||||
- io: use poll if available
|
||||
|
||||
- port to FreeBSD
|
||||
|
||||
Commands
|
||||
|
@ -41,6 +49,16 @@ show <name> # show everything you know about symbol <name>
|
|||
static ??? [<name>]
|
||||
symbols
|
||||
(disable|enable|restart) <protocol> # or ALL?
|
||||
- showing of routing table as seen by given protocol
|
||||
|
||||
Client
|
||||
~~~~~~
|
||||
- write it!
|
||||
|
||||
Documentation
|
||||
~~~~~~~~~~~~~
|
||||
- write doctool
|
||||
- write documentation :|
|
||||
|
||||
Cleanup
|
||||
~~~~~~~
|
||||
|
|
|
@ -224,8 +224,6 @@ if_dump(struct iface *i)
|
|||
debug(" BC");
|
||||
if (i->flags & IF_MULTICAST)
|
||||
debug(" MC");
|
||||
if (i->flags & IF_TUNNEL)
|
||||
debug(" TUNL");
|
||||
if (i->flags & IF_LOOPBACK)
|
||||
debug(" LOOP");
|
||||
if (i->flags & IF_IGNORE)
|
||||
|
|
|
@ -43,7 +43,6 @@ struct iface {
|
|||
#define IF_UNNUMBERED 4
|
||||
#define IF_BROADCAST 8
|
||||
#define IF_MULTICAST 0x10
|
||||
#define IF_TUNNEL 0x20 /* FIXME: Remove? */
|
||||
#define IF_ADMIN_DOWN 0x40
|
||||
#define IF_LOOPBACK 0x80
|
||||
#define IF_IGNORE 0x100 /* Not to be used by routing protocols (loopbacks etc.) */
|
||||
|
|
|
@ -270,7 +270,6 @@ typedef struct eattr {
|
|||
} u;
|
||||
} eattr;
|
||||
|
||||
/* FIXME: Introduce real protocol numbers? */
|
||||
#define EAP_GENERIC 0 /* Generic attributes */
|
||||
#define EAP_BGP 1 /* BGP attributes */
|
||||
#define EAP_RIP 2 /* RIP */
|
||||
|
|
|
@ -103,7 +103,7 @@ krt_parse_entry(byte *ent, struct krt_proto *p)
|
|||
if (ng)
|
||||
a.iface = ng->iface;
|
||||
else
|
||||
/* FIXME: Remove this warning? */
|
||||
/* FIXME: Remove this warning? Handle it somehow... */
|
||||
log(L_WARN "Kernel told us to use non-neighbor %I for %I/%d", gw, net->n.prefix, net->n.pxlen);
|
||||
a.dest = RTD_ROUTER;
|
||||
a.gw = gw;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
|
||||
#ifndef MSG_TRUNC /* FIXME: Hack to circumvent omissions in glibc includes */
|
||||
#ifndef MSG_TRUNC /* Hack: Several versions of glibc miss this one :( */
|
||||
#define MSG_TRUNC 0x20
|
||||
#endif
|
||||
|
||||
|
@ -143,7 +143,7 @@ nl_error(struct nlmsghdr *h)
|
|||
e = (struct nlmsgerr *) NLMSG_DATA(h);
|
||||
ec = -e->error;
|
||||
if (ec)
|
||||
log(L_WARN "Netlink: %s", strerror(ec)); /* FIXME: Shut up? */
|
||||
log(L_WARN "Netlink: %s", strerror(ec));
|
||||
return ec;
|
||||
}
|
||||
|
||||
|
@ -472,7 +472,6 @@ nl_send_route(struct krt_proto *p, rte *e, int new)
|
|||
r.h.nlmsg_type = new ? RTM_NEWROUTE : RTM_DELROUTE;
|
||||
r.h.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
|
||||
r.h.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | (new ? NLM_F_CREATE|NLM_F_REPLACE : 0);
|
||||
/* FIXME: Do we really need to process ACKs? */
|
||||
|
||||
r.r.rtm_family = BIRD_AF;
|
||||
r.r.rtm_dst_len = net->n.pxlen;
|
||||
|
@ -666,7 +665,7 @@ nl_parse_route(struct nlmsghdr *h, int scan)
|
|||
if (ng)
|
||||
ra.iface = ng->iface;
|
||||
else
|
||||
/* FIXME: Remove this warning? */
|
||||
/* FIXME: Remove this warning? Handle it somehow... */
|
||||
log(L_WARN "Kernel told us to use non-neighbor %I for %I/%d", ra.gw, net->n.prefix, net->n.pxlen);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -191,7 +191,11 @@ krt_if_scan(struct kif_proto *p)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#ifdef CLEAN_WAY_WORKING_ONLY_ON_LINUX_2_1 /* FIXME */
|
||||
#if 0
|
||||
/*
|
||||
* Linux 2.1 and higher supports this, but it's not needed since
|
||||
* we prefer to use Netlink there anyway.
|
||||
*/
|
||||
ic.ifc_req = NULL;
|
||||
ic.ifc_len = 999999999;
|
||||
if (ioctl(if_scan_sock, SIOCGIFCONF, &ic) < 0)
|
||||
|
|
Loading…
Reference in a new issue