summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
}
;