I am still struggling with the syntax of ipfw, so this may be operator error, but when I put in:
----- variables substituted that last line is ----
the output is --
it would appear that the code block in dummynet.c is:
Replacing the variable with the 0xffffffffffff00000000000000000000 string doesn't work either, so it doesn't appear to be a substitution problem. I have counted multiple times, and even retyped the IPv6 mask, so I am fairly sure it is 128 bits, but clearly the comparison listed above in dummynet.c thinks otherwise. That is the only place I could find that had the specific error string in the return message.
Am I getting the syntax wrong, or is there something in a parser that is sending more than 128 bits to the test in dummynet.c ???
Code:
...
mask24="0xffffff00"
mask48="0xffffffffffff00000000000000000000"
...
$IPFWa 1123 pipe 123 ip from any to any out
$IPFWp 123 config bw 2kbit/s
$IPFWq 123 config pipe 123 mask dst-ip $mask24
$IPFWq 123 config pipe 123 mask dst-ip6 $mask48
Code:
ipfw -q queue 123 config pipe 123 mask dst-ip6 0xffffffffffff00000000000000000000
Code:
...
Bump flowset buckets to 64 (was 0)
Bump WF2Q+ weight to 1 (was 0)
ipfw: in6addr invalid mask len
...
Code:
} else if (pa6 != NULL) {
if (a > 128)
errx(EX_DATAERR,
"in6addr invalid mask len");
else
n2mask(pa6, a);
Am I getting the syntax wrong, or is there something in a parser that is sending more than 128 bits to the test in dummynet.c ???