pub const IPV4_FLAG_RESERVED: u8 = 0b100;
pub const IPV4_FLAG_DONT_FRAGMENT: u8 = 0b010;
pub const IPV4_FLAG_MORE_FRAGMENTS: u8 = 0b001;
pub const IPV4_OPTION_EOL: u8 = 0;
pub const IPV4_OPTION_NOP: u8 = 1;
pub const IPV4_OPTION_RECORD_ROUTE: u8 = 7;
pub const IPV4_OPTION_TIMESTAMP: u8 = 0x44;
pub const IPV4_OPTION_TRACEROUTE: u8 = 0x52;
pub const IPV4_OPTION_LOOSE_SOURCE_ROUTE: u8 = 0x83;
pub const IPV4_OPTION_STRICT_SOURCE_ROUTE: u8 = 0x89;
pub const IPV4_OPTION_ROUTER_ALERT: u8 = 0x94;
pub const IPV4_OPTION_EXPERIMENTAL_1: u8 = 30;
pub const IPV4_OPTION_EXPERIMENTAL_2: u8 = 94;
pub const IPV4_OPTION_EXPERIMENTAL_3: u8 = 158;
pub const IPV4_OPTION_EXPERIMENTAL_4: u8 = 222;
pub(super) const IPV4_MIN_HEADER_LEN: usize = 20;
pub(super) const IPV4_MAX_HEADER_LEN: usize = 60;
pub(super) const IPV4_MAX_IHL: u8 = 15;
pub(super) const IPV4_MAX_FLAGS: u8 = 0b111;
pub(super) const IPV4_MAX_FRAGMENT_OFFSET: u16 = 0x1fff;
pub(super) const IPV4_OPTION_COPIED_MASK: u8 = 0b1000_0000;
pub(super) const IPV4_OPTION_CLASS_MASK: u8 = 0b0110_0000;
pub(super) const IPV4_OPTION_CLASS_SHIFT: u8 = 5;
pub(super) const IPV4_OPTION_NUMBER_MASK: u8 = 0b0001_1111;
pub(super) const IPV4_TIMESTAMP_MIN_LEN: usize = 4;
pub(super) const IPV4_TIMESTAMP_MAX_LEN: usize = 40;
pub(super) const IPV4_TIMESTAMP_POINTER_MIN: u8 = 5;
pub(super) const IPV4_TIMESTAMP_FLAG_TIMESTAMPS_ONLY: u8 = 0;
pub(super) const IPV4_TIMESTAMP_FLAG_ADDRESS_AND_TIMESTAMP: u8 = 1;
pub(super) const IPV4_TIMESTAMP_FLAG_PRESPECIFIED_ADDRESS: u8 = 3;
pub(super) const IPV4_TIMESTAMP_WORD_LEN: usize = 4;
pub(super) const IPV4_TIMESTAMP_ADDRESS_WORD_LEN: usize = 8;
pub(super) const IPV4_ROUTER_ALERT_LEN: usize = 4;