Struct riot_sys::ipv6_hdr_t
source · #[repr(C, packed(1))]pub struct ipv6_hdr_t {
pub v_tc_fl: network_uint32_t,
pub len: network_uint16_t,
pub nh: u8,
pub hl: u8,
pub src: ipv6_addr_t,
pub dst: ipv6_addr_t,
}
Expand description
@brief Data type to represent an IPv6 packet header
@details The structure of the header is as follows:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@see RFC 8200, section 3
Fields§
§v_tc_fl: network_uint32_t
@brief Version, traffic class, and flow label
@details The version are the 4 most significant bits, the traffic class the 8 next bit, and the remainding 20 bits are the flow label (see above).
This module provides helper functions to set, get, and check these fields accordingly:
- ipv6_hdr_set_version()
- ipv6_hdr_get_version()
- ipv6_hdr_is()
- ipv6_hdr_set_tc()
- ipv6_hdr_set_tc_ecn()
- ipv6_hdr_set_tc_dscp()
- ipv6_hdr_get_tc()
- ipv6_hdr_get_tc_ecn()
- ipv6_hdr_get_tc_dscp()
- ipv6_hdr_set_fl()
- ipv6_hdr_get_fl()
len: network_uint16_t
< payload length of this packet.
nh: u8
< type of next header in this packet.
hl: u8
< hop limit for this packet.
src: ipv6_addr_t
< source address of this packet.
dst: ipv6_addr_t
< destination address of this packet.
Trait Implementations§
source§impl Clone for ipv6_hdr_t
impl Clone for ipv6_hdr_t
source§fn clone(&self) -> ipv6_hdr_t
fn clone(&self) -> ipv6_hdr_t
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ipv6_hdr_t
impl Debug for ipv6_hdr_t
source§impl Default for ipv6_hdr_t
impl Default for ipv6_hdr_t
impl Copy for ipv6_hdr_t
Auto Trait Implementations§
impl RefUnwindSafe for ipv6_hdr_t
impl Send for ipv6_hdr_t
impl Sync for ipv6_hdr_t
impl Unpin for ipv6_hdr_t
impl UnwindSafe for ipv6_hdr_t
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more