Struct etherparse::Ipv6Header [−][src]
pub struct Ipv6Header { pub traffic_class: u8, pub flow_label: u32, pub payload_length: u16, pub next_header: u8, pub hop_limit: u8, pub source: [u8; 16], pub destination: [u8; 16], }
IPv6 header according to rfc8200.
Fields
traffic_class: u8
flow_label: u32
If non 0 serves as a hint to router and switches with multiple outbound paths that these packets should stay on the same path, so that they will not be reordered.
payload_length: u16
The length of the payload and extension headers in
next_header: u8
Specifies what the next header or transport layer protocol is (see IpTrafficClass for a definitions of ids).
hop_limit: u8
The number of hops the packet can take before it is discarded.
source: [u8; 16]
IPv6 source address
destination: [u8; 16]
IPv6 destination address
Methods
impl Ipv6Header
[src]
impl Ipv6Header
pub fn read<T: Read + Seek + Sized>(
reader: &mut T
) -> Result<Ipv6Header, ReadError>
[src]
pub fn read<T: Read + Seek + Sized>(
reader: &mut T
) -> Result<Ipv6Header, ReadError>
Reads an IPv6 header from the current position.
pub fn read_without_version<T: Read + Seek + Sized>(
reader: &mut T,
version_rest: u8
) -> Result<Ipv6Header, Error>
[src]
pub fn read_without_version<T: Read + Seek + Sized>(
reader: &mut T,
version_rest: u8
) -> Result<Ipv6Header, Error>
Reads an IPv6 header assuming the version & flow_label field have already been read.
pub fn skip_header_extension<T: Read + Seek + Sized>(
reader: &mut T,
traffic_class: u8
) -> Result<u8, Error>
[src]
pub fn skip_header_extension<T: Read + Seek + Sized>(
reader: &mut T,
traffic_class: u8
) -> Result<u8, Error>
Skips the ipv6 header extension and returns the traffic_class
pub fn skip_all_header_extensions<T: Read + Seek + Sized>(
reader: &mut T,
traffic_class: u8
) -> Result<u8, ReadError>
[src]
pub fn skip_all_header_extensions<T: Read + Seek + Sized>(
reader: &mut T,
traffic_class: u8
) -> Result<u8, ReadError>
Skips all ipv6 header extensions and returns the last traffic_class
pub fn write<T: Write + Sized>(&self, writer: &mut T) -> Result<(), WriteError>
[src]
pub fn write<T: Write + Sized>(&self, writer: &mut T) -> Result<(), WriteError>
Writes a given IPv6 header to the current position.
pub fn set_payload_length(&mut self, size: usize) -> Result<(), ValueError>
[src]
pub fn set_payload_length(&mut self, size: usize) -> Result<(), ValueError>
Sets the field total_length based on the size of the payload and the options. Returns an error if the payload is too big to fit.
Trait Implementations
impl Clone for Ipv6Header
[src]
impl Clone for Ipv6Header
fn clone(&self) -> Ipv6Header
[src]
fn clone(&self) -> Ipv6Header
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Debug for Ipv6Header
[src]
impl Debug for Ipv6Header
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Eq for Ipv6Header
[src]
impl Eq for Ipv6Header
impl PartialEq for Ipv6Header
[src]
impl PartialEq for Ipv6Header
fn eq(&self, other: &Ipv6Header) -> bool
[src]
fn eq(&self, other: &Ipv6Header) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Ipv6Header) -> bool
[src]
fn ne(&self, other: &Ipv6Header) -> bool
This method tests for !=
.
impl SerializedSize for Ipv6Header
[src]
impl SerializedSize for Ipv6Header
const SERIALIZED_SIZE: usize
SERIALIZED_SIZE: usize = 40
Size of the header itself in bytes.
Auto Trait Implementations
impl Send for Ipv6Header
impl Send for Ipv6Header
impl Sync for Ipv6Header
impl Sync for Ipv6Header