Commit 476e1084 authored by Martin Mareš's avatar Martin Mareš

Minor cleanups.

parent e693ddff
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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment