use n::packet::*;
#[millefeuille]
pub fn extract_version_u8(packet: Packet) -> Packet {
let mut packet = packet;
let first_byte = packet.read_u8(0);
packet.context.set_u8("ip::version_u8", (first_byte >> 4) & 0x0Fu8);
packet
}
extract_field!(extract_hop_limit, ip, 1, hop_limit);
fill_field!(fill_hop_limit, ip, 1, hop_limit);
extract_field_value!(extract_hop_limit_u8, ip, hop_limit, u8);
apply_field_value!(apply_hop_limit, ip, hop_limit, u8);
extract_field!(extract_total_length, ip, 2, total_length);
fill_field!(fill_total_length, ip, 2, total_length);
extract_field_value!(extract_total_length_u16, ip, total_length, u16);
apply_field_value!(apply_total_length, ip, total_length, u16);
extract_field!(extract_protocol, ip, 1, protocol);
fill_field!(fill_protocol, ip, 1, protocol);
extract_field_value!(extract_protocol_u8, ip, protocol, u8);
apply_field_value!(apply_protocol, ip, protocol, u8);