If length is a uint8_t, subtracting 2 (a value of type int) from it
yields a value of type int, so compariing it against a u_int index
causes a signed vs. unsigned warning.
Make it a u_int instead (before we subtract 2 from it, we've already
checked to make sure it's >= 2, so we know the result will never be
negative).
u_int n, vn;
uint8_t ver;
uint8_t flags;
- uint8_t length;
+ u_int length;
uint8_t md_type;
uint8_t next_protocol;
uint32_t service_path_id;