The size of dhcp option should be o.length + 2 additional bytes of the header.
Incorrect offset results in an extra byte at the end of the packet:
...
0120 04 00 00 00 04 05 04 AC 10 04 01 FF 00
...
RFC2131 says the last should be the 'end' option (ff)
Type: fix
Change-Id: I056d755d29465aab8c1c55a0b930f65ece6fafce
Signed-off-by: Artem Glazychev <[email protected]>
o->length += id_len + 5;
}
- len = o->length + 3;
+ /* 2 bytes for option header 82+len */
+ len = o->length + 2;
b0->current_length += len;
/* Fix IP header length and checksum */
old_l0 = ip0->length;
is_discover = True
self.assertTrue(is_discover)
+ # The last option must always be the 'end' option
+ self.assertEqual(dhcp.options[-1], "end")
+
data = self.validate_relay_options(
pkt, src_intf, src_intf.local_ip4, vpn_id, fib_id, oui
)