net_addr_flow4 *f;
NET_ADDR_FLOW4_(f, ip4_build(10,0,0,1), 24, ((byte[]) { 0x00, 0x00, 0xab }));
- const byte const *under240 = &f->data[1];
- const byte const *above240 = &f->data[2];
+ const byte *under240 = &f->data[1];
+ const byte *above240 = &f->data[2];
/* Case 0x00 0x00 */
bt_assert(flow4_first_part(f) == NULL);
{ return !a->pxlen && ip6_zero(a->prefix) && !a->max_pxlen && !a->asn; }
static inline int net_zero_flow4(const net_addr_flow4 *a)
-{ return !a->pxlen && ip4_zero(a->prefix) && !a->data; }
+{ return !a->pxlen && ip4_zero(a->prefix) && (a->length == sizeof(net_addr_flow4)); }
static inline int net_zero_flow6(const net_addr_flow6 *a)
-{ return !a->pxlen && ip6_zero(a->prefix) && !a->data; }
+{ return !a->pxlen && ip6_zero(a->prefix) && (a->length == sizeof(net_addr_flow6)); }
static inline int net_zero_mpls(const net_addr_mpls *a)
{ return !a->label; }
KERNEL TABLE expr {
if ($3 && (krt_max_tables == 1))
cf_error("Multiple kernel routing tables not supported");
- if ($3 < 0 || $3 >= krt_max_tables)
- cf_error("Kernel table id must be in range 0-%d", krt_max_tables - 1);
+ if ($3 >= krt_max_tables)
+ cf_error("Kernel table id must be in range 0-%u", krt_max_tables - 1);
THIS_KRT->sys.table_id = $3;
}
/* Dynamic max number of tables */
-int krt_max_tables;
+uint krt_max_tables;
#ifdef KRT_USE_SYSCTL_NET_FIBS
-static int
+static uint
krt_get_max_tables(void)
{
int fibs;
return 1;
}
- return MIN(fibs, KRT_MAX_TABLES);
+ /* Should not happen */
+ if (fibs < 1)
+ return 1;
+
+ return (uint) MIN(fibs, KRT_MAX_TABLES);
}
#else
/* Kernel routes */
-extern int krt_max_tables;
+extern uint krt_max_tables;
struct krt_params {
int table_id; /* Kernel table ID we sync with */