Struct Ipv6Header
pub struct Ipv6Header {
pub source: Ipv6Addr,
pub destination: Ipv6Addr,
pub next_header: IpProtocol,
pub hop_limit: u8,
pub traffic_class: u8,
/* private fields */
}Available on crate feature
net only.Expand description
IPv6 base-header fields for construction; extension headers are supplied in the payload.
Fields§
§source: Ipv6AddrSource address.
destination: Ipv6AddrDestination address.
next_header: IpProtocolFirst extension header or upper-layer protocol.
hop_limit: u8Hop Limit.
traffic_class: u8DSCP and ECN bits.
Implementations§
§impl Ipv6Header
impl Ipv6Header
pub const fn new(
source: Ipv6Addr,
destination: Ipv6Addr,
next_header: IpProtocol,
) -> Ipv6Header
pub const fn new( source: Ipv6Addr, destination: Ipv6Addr, next_header: IpProtocol, ) -> Ipv6Header
A header with hop limit 64, zero flow label and no ECN/DSCP.
pub const fn try_with_flow_label(
self,
flow_label: u32,
) -> Result<Ipv6Header, IpPacketError>
pub const fn try_with_flow_label( self, flow_label: u32, ) -> Result<Ipv6Header, IpPacketError>
Set the twenty-bit IPv6 flow label.
pub const fn flow_label(&self) -> u32
pub const fn flow_label(&self) -> u32
The configured IPv6 flow label.
pub fn encode(
&self,
payload: &[u8],
output: &mut [u8],
) -> Result<usize, IpPacketError>
pub fn encode( &self, payload: &[u8], output: &mut [u8], ) -> Result<usize, IpPacketError>
Serialize a base header and payload. This does not validate extension bytes:
use Ipv6Packet::parse to validate a complete packet built from raw extensions.
The output is untouched when the base fields or buffer length are invalid.
pub fn encode_header<'b>(
&self,
payload_len: usize,
output: &'b mut [u8],
) -> Result<&'b mut [u8], IpPacketError>
pub fn encode_header<'b>( &self, payload_len: usize, output: &'b mut [u8], ) -> Result<&'b mut [u8], IpPacketError>
Write the IPv6 base header and return its payload region for in-place encoding.
Trait Implementations§
§impl Clone for Ipv6Header
impl Clone for Ipv6Header
§fn clone(&self) -> Ipv6Header
fn clone(&self) -> Ipv6Header
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for Ipv6Header
Auto Trait Implementations§
impl Freeze for Ipv6Header
impl RefUnwindSafe for Ipv6Header
impl Send for Ipv6Header
impl Sync for Ipv6Header
impl Unpin for Ipv6Header
impl UnsafeUnpin for Ipv6Header
impl UnwindSafe for Ipv6Header
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more