Struct etherparse::UdpHeader
source · [−]pub struct UdpHeader {
pub source_port: u16,
pub destination_port: u16,
pub length: u16,
pub checksum: u16,
}
Expand description
Udp header according to rfc768.
Fields
source_port: u16
Source port of the packet (optional).
destination_port: u16
Destination port of the packet.
length: u16
Length of the packet (includes the udp header length of 8 bytes).
checksum: u16
The checksum of the packet. The checksum is calculated from a pseudo header, the udp header and the payload. The pseudo header is composed of source and destination address, protocol number
Implementations
sourceimpl UdpHeader
impl UdpHeader
sourcepub fn without_ipv4_checksum(
source_port: u16,
destination_port: u16,
payload_length: usize
) -> Result<UdpHeader, ValueError>
pub fn without_ipv4_checksum(
source_port: u16,
destination_port: u16,
payload_length: usize
) -> Result<UdpHeader, ValueError>
Returns an udp header for the given parameters
sourcepub fn with_ipv4_checksum(
source_port: u16,
destination_port: u16,
ip_header: &Ipv4Header,
payload: &[u8]
) -> Result<UdpHeader, ValueError>
pub fn with_ipv4_checksum(
source_port: u16,
destination_port: u16,
ip_header: &Ipv4Header,
payload: &[u8]
) -> Result<UdpHeader, ValueError>
Calculate an udp header given an ipv4 header and the payload
sourcepub fn calc_checksum_ipv4(
&self,
ip_header: &Ipv4Header,
payload: &[u8]
) -> Result<u16, ValueError>
pub fn calc_checksum_ipv4(
&self,
ip_header: &Ipv4Header,
payload: &[u8]
) -> Result<u16, ValueError>
Calculates the upd header checksum based on a ipv4 header.
sourcepub fn calc_checksum_ipv4_raw(
&self,
source: [u8; 4],
destination: [u8; 4],
payload: &[u8]
) -> Result<u16, ValueError>
pub fn calc_checksum_ipv4_raw(
&self,
source: [u8; 4],
destination: [u8; 4],
payload: &[u8]
) -> Result<u16, ValueError>
Calculates the upd header checksum based on a ipv4 header.
sourcepub fn with_ipv6_checksum(
source_port: u16,
destination_port: u16,
ip_header: &Ipv6Header,
payload: &[u8]
) -> Result<UdpHeader, ValueError>
pub fn with_ipv6_checksum(
source_port: u16,
destination_port: u16,
ip_header: &Ipv6Header,
payload: &[u8]
) -> Result<UdpHeader, ValueError>
Calculate an udp header given an ipv6 header and the payload
sourcepub fn calc_checksum_ipv6(
&self,
ip_header: &Ipv6Header,
payload: &[u8]
) -> Result<u16, ValueError>
pub fn calc_checksum_ipv6(
&self,
ip_header: &Ipv6Header,
payload: &[u8]
) -> Result<u16, ValueError>
Calculates the checksum of the current udp header given an ipv6 header and the payload.
sourcepub fn calc_checksum_ipv6_raw(
&self,
source: [u8; 16],
destination: [u8; 16],
payload: &[u8]
) -> Result<u16, ValueError>
pub fn calc_checksum_ipv6_raw(
&self,
source: [u8; 16],
destination: [u8; 16],
payload: &[u8]
) -> Result<u16, ValueError>
Calculates the checksum of the current udp header given an ipv6 source & destination address plus the payload.
sourcepub fn read_from_slice(slice: &[u8]) -> Result<(UdpHeader, &[u8]), ReadError>
👎 Deprecated since 0.10.1: Use UdpHeader::from_slice instead.
pub fn read_from_slice(slice: &[u8]) -> Result<(UdpHeader, &[u8]), ReadError>
Use UdpHeader::from_slice instead.
Reads a udp header from a slice directly and returns a tuple containing the resulting header & unused part of the slice.
sourcepub fn from_slice(slice: &[u8]) -> Result<(UdpHeader, &[u8]), ReadError>
pub fn from_slice(slice: &[u8]) -> Result<(UdpHeader, &[u8]), ReadError>
Reads a udp header from a slice directly and returns a tuple containing the resulting header & unused part of the slice.
sourcepub fn from_bytes(bytes: [u8; 8]) -> UdpHeader
pub fn from_bytes(bytes: [u8; 8]) -> UdpHeader
Read an UdpHeader from a static sized byte array.
sourcepub fn read<T: Read + Seek + Sized>(reader: &mut T) -> Result<UdpHeader, Error>
pub fn read<T: Read + Seek + Sized>(reader: &mut T) -> Result<UdpHeader, Error>
Tries to read an udp header from the current position.
sourcepub fn write<T: Write + Sized>(&self, writer: &mut T) -> Result<(), WriteError>
pub fn write<T: Write + Sized>(&self, writer: &mut T) -> Result<(), WriteError>
Write the udp header without recalculating the checksum or length.
sourcepub fn header_len(&self) -> usize
pub fn header_len(&self) -> usize
Length of the serialized header in bytes.
The function always returns the constant UdpHeader::SERIALIZED_SIZE and exists to keep the methods consistent with other headers.
Trait Implementations
sourceimpl SerializedSize for UdpHeader
impl SerializedSize for UdpHeader
sourceconst SERIALIZED_SIZE: usize = 8usize
const SERIALIZED_SIZE: usize = 8usize
Size of the header itself
impl Eq for UdpHeader
impl StructuralEq for UdpHeader
impl StructuralPartialEq for UdpHeader
Auto Trait Implementations
impl RefUnwindSafe for UdpHeader
impl Send for UdpHeader
impl Sync for UdpHeader
impl Unpin for UdpHeader
impl UnwindSafe for UdpHeader
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more