diff --git a/sysdep/linux/netlink/krt-scan.h b/sysdep/linux/netlink/krt-scan.h index 2f8fe761..7885f078 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 c5dcf620..c448d895 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; } ;