pub use crate::protocols::ip::shared::{
IPPROTO_IPV6_AH, IPPROTO_IPV6_DSTOPTS, IPPROTO_IPV6_ESP, IPPROTO_IPV6_EXPERIMENTAL_1,
IPPROTO_IPV6_EXPERIMENTAL_2, IPPROTO_IPV6_FRAGMENT, IPPROTO_IPV6_HIP, IPPROTO_IPV6_HOPOPTS,
IPPROTO_IPV6_MOBILITY, IPPROTO_IPV6_NO_NEXT, IPPROTO_IPV6_ROUTE, IPPROTO_IPV6_SHIM6,
};
pub const IPV6_OPTION_PAD1: u8 = 0x00;
pub const IPV6_OPTION_PADN: u8 = 0x01;
pub const IPV6_OPTION_JUMBO_PAYLOAD: u8 = 0xc2;
pub const IPV6_OPTION_ROUTER_ALERT: u8 = 0x05;
pub const IPV6_OPTION_HOME_ADDRESS: u8 = 0xc9;
pub const IPV6_ROUTER_ALERT_MLD: u16 = 0;
pub const IPV6_ROUTER_ALERT_RSVP: u16 = 1;
pub const IPV6_ROUTER_ALERT_ACTIVE_NETWORKS: u16 = 2;
pub const IPV6_ROUTER_ALERT_RESERVED: u16 = 3;
pub const IPV6_ROUTER_ALERT_MPLS_OAM: u16 = 69;
pub const IPV6_ROUTING_TYPE_SOURCE_ROUTE: u8 = 0;
pub const IPV6_ROUTING_TYPE_RH0: u8 = IPV6_ROUTING_TYPE_SOURCE_ROUTE;
pub const IPV6_ROUTING_TYPE_NIMROD: u8 = 1;
pub const IPV6_ROUTING_TYPE_MOBILE: u8 = 2;
pub const IPV6_ROUTING_TYPE_RPL: u8 = 3;
pub const IPV6_ROUTING_TYPE_SEGMENT: u8 = 4;
pub const IPV6_ROUTING_TYPE_CRH16: u8 = 5;
pub const IPV6_ROUTING_TYPE_CRH32: u8 = 6;
pub const IPV6_ROUTING_TYPE_EXPERIMENTAL_1: u8 = 253;
pub const IPV6_ROUTING_TYPE_EXPERIMENTAL_2: u8 = 254;
pub const IPV6_ROUTING_TYPE_RESERVED: u8 = 255;
pub const IPV6_MOBILE_ROUTING_HEADER_EXT_LEN: u8 = 2;
pub const IPV6_MOBILE_ROUTING_SEGMENTS_LEFT: u8 = 1;
pub const IPV6_MOBILE_ROUTING_RESERVED: u32 = 0;
pub const IPV6_SEGMENT_POLICY_UNSET: u8 = 0;
pub const IPV6_SEGMENT_POLICY_INGRESS: u8 = 1;
pub const IPV6_SEGMENT_POLICY_EGRESS: u8 = 2;
pub const IPV6_SEGMENT_POLICY_SOURCE_ADDRESS: u8 = 3;
pub(super) const IPV6_HEADER_LEN: usize = 40;
pub(super) const IPV6_EXTENSION_MIN_LEN: usize = 8;
pub(super) const IPV6_FRAGMENT_HEADER_LEN: usize = 8;
pub(super) const IPV6_MOBILE_ROUTING_LEN: usize = 24;
pub(super) const IPV6_SEGMENT_BASE_LEN: usize = 8;
pub(super) const IPV6_MAX_FLOW_LABEL: u32 = 0x000f_ffff;
pub(super) const IPV6_MAX_HEADER_EXT_LEN: usize = 8 + u8::MAX as usize * 8;
pub(super) const IPV6_MAX_FRAGMENT_OFFSET: u16 = 0x1fff;
pub(super) const IPV6_SEGMENT_HMAC_LEN: usize = 32;
pub(super) const IPV6_OPTION_DATA_MAX_LEN: usize = u8::MAX as usize;
pub(super) const IPV6_OPTION_HEADER_LEN: usize = 2;
pub(super) const IPV6_JUMBO_PAYLOAD_DATA_LEN: usize = 4;
pub(super) const IPV6_ROUTER_ALERT_DATA_LEN: usize = 2;
pub(super) const IPV6_HOME_ADDRESS_DATA_LEN: usize = 16;
pub(super) const IPV6_OPTION_ACTION_SHIFT: u8 = 6;
pub(super) const IPV6_OPTION_CHANGE_EN_ROUTE_MASK: u8 = 0x20;
pub(super) const IPV6_OPTION_NUMBER_MASK: u8 = 0x1f;