-
- if (length < 2 || length > 18) {
- ND_PRINT("ERROR: length %u not in range (2..18)", length);
- return;
- }
- ND_TCHECK_LEN(data, length);
- if (GET_U_1(data + 1) > 128) {
- ND_PRINT("ERROR: netmask %u not in range (0..128)", GET_U_1(data + 1));
- return;
- }
-
+ u_int reserved_mbz, prefix_length;
+
+ ND_ICHECK_U(length, <, 2);
+ ND_ICHECK_U(length, >, 18);
+ reserved_mbz = GET_U_1(data);
+ if (reserved_mbz)
+ ND_PRINT("[reserved-MBZ %u] ", reserved_mbz);
+ prefix_length = GET_U_1(data + 1);
+ ND_ICHECKMSG_U("prefix length", prefix_length, >, 128);