summaryrefslogtreecommitdiffstats
path: root/sysdep
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-06-18 21:49:32 +0200
committerMartin Mares <mj@ucw.cz>2000-06-18 21:49:32 +0200
commitca00d4a13a7207da1ea3acf1f0e38ddc27669a4d (patch)
tree4c7acf42439e8ca6159383110d9d8cb44fda9cba /sysdep
parent4daf03e5138dea8e5c409ab20a07f35667caa89e (diff)
downloadbird-ca00d4a13a7207da1ea3acf1f0e38ddc27669a4d.tar
bird-ca00d4a13a7207da1ea3acf1f0e38ddc27669a4d.zip
Fix numbering of routing tables in IPv6 version.
Diffstat (limited to 'sysdep')
-rw-r--r--sysdep/linux/netlink/krt-scan.h4
-rw-r--r--sysdep/linux/netlink/netlink.Y5
2 files changed, 5 insertions, 4 deletions
diff --git a/sysdep/linux/netlink/krt-scan.h b/sysdep/linux/netlink/krt-scan.h
index 2f8fe76..7885f07 100644
--- a/sysdep/linux/netlink/krt-scan.h
+++ b/sysdep/linux/netlink/krt-scan.h
@@ -15,11 +15,7 @@
* to krt-set.h, krt-iface.h and this file.
*/
-#ifdef IPV6
-#define NL_NUM_TABLES 1
-#else
#define NL_NUM_TABLES 256
-#endif
struct krt_scan_params {
int table_id; /* Kernel table ID we sync with */
diff --git a/sysdep/linux/netlink/netlink.Y b/sysdep/linux/netlink/netlink.Y
index c5dcf62..c448d89 100644
--- a/sysdep/linux/netlink/netlink.Y
+++ b/sysdep/linux/netlink/netlink.Y
@@ -18,8 +18,13 @@ CF_ADDTO(kern_proto, kern_proto nl_item ';')
nl_item:
KERNEL TABLE expr {
+#ifndef IPV6
if ($3 <= 0 || $3 >= NL_NUM_TABLES)
cf_error("Kernel routing table number out of range");
+#else
+ if ($3 != 254)
+ cf_error("Linux implementation of IPv6 doesn't support multiple routing tables");
+#endif
THIS_KRT->scan.table_id = $3;
}
;