Struct capsules::net::sixlowpan::TxState
[−]
[src]
struct TxState {
packet: TakeCell<'static, [u8]>,
src_pan: Cell<PanID>,
dst_pan: Cell<PanID>,
src_mac_addr: Cell<MacAddress>,
dst_mac_addr: Cell<MacAddress>,
security: Cell<Option<(SecurityLevel, KeyId)>>,
dgram_tag: Cell<u16>,
dgram_size: Cell<u16>,
dgram_offset: Cell<usize>,
tx_dgram_tag: Cell<u16>,
tx_busy: Cell<bool>,
tx_buf: TakeCell<'static, [u8]>,
}Tracks the global transmit state for a single IPv6 packet.
Since transmit is serialized, the Sixlowpan struct only contains
a reference to a single TxState (that is, we can only have a single
outstanding transmission at the same time).
This struct maintains a reference to the full IPv6 packet, the source/dest MAC addresses and PanIDs, security/compression/fragmentation options, per-fragmentation state, and some global state.
Fields
packet: TakeCell<'static, [u8]>
src_pan: Cell<PanID>
dst_pan: Cell<PanID>
src_mac_addr: Cell<MacAddress>
dst_mac_addr: Cell<MacAddress>
security: Cell<Option<(SecurityLevel, KeyId)>>
dgram_tag: Cell<u16>
dgram_size: Cell<u16>
dgram_offset: Cell<usize>
tx_dgram_tag: Cell<u16>
tx_busy: Cell<bool>
tx_buf: TakeCell<'static, [u8]>
Methods
impl TxState[src]
fn new(tx_buf: &'static mut [u8]) -> TxState[src]
Creates a new TxState
Arguments
tx_buf - A buffer for storing fragments the size of a 802.15.4 frame.
This buffer must be at least radio::MAX_FRAME_SIZE bytes long.
fn is_transmit_done(&self) -> bool[src]
fn init_transmit(
&self,
src_mac_addr: MacAddress,
dst_mac_addr: MacAddress,
packet: &'static mut [u8],
packet_len: usize,
security: Option<(SecurityLevel, KeyId)>
)[src]
&self,
src_mac_addr: MacAddress,
dst_mac_addr: MacAddress,
packet: &'static mut [u8],
packet_len: usize,
security: Option<(SecurityLevel, KeyId)>
)
fn start_transmit(
&self,
dgram_tag: u16,
frag_buf: &'static mut [u8],
radio: &MacDevice,
ctx_store: &ContextStore
) -> Result<(), (ReturnCode, &'static mut [u8])>[src]
&self,
dgram_tag: u16,
frag_buf: &'static mut [u8],
radio: &MacDevice,
ctx_store: &ContextStore
) -> Result<(), (ReturnCode, &'static mut [u8])>
fn prepare_transmit_first_fragment(
&self,
ip6_packet: &[u8],
frame: Frame,
radio: &MacDevice,
ctx_store: &ContextStore
) -> Result<(), (ReturnCode, &'static mut [u8])>[src]
&self,
ip6_packet: &[u8],
frame: Frame,
radio: &MacDevice,
ctx_store: &ContextStore
) -> Result<(), (ReturnCode, &'static mut [u8])>
fn prepare_transmit_next_fragment(
&self,
frag_buf: &'static mut [u8],
radio: &MacDevice
) -> Result<(), (ReturnCode, &'static mut [u8])>[src]
&self,
frag_buf: &'static mut [u8],
radio: &MacDevice
) -> Result<(), (ReturnCode, &'static mut [u8])>
fn end_transmit<'a>(
&self,
tx_buf: &'static mut [u8],
client: Option<&'a SixlowpanClient>,
acked: bool,
result: ReturnCode
)[src]
&self,
tx_buf: &'static mut [u8],
client: Option<&'a SixlowpanClient>,
acked: bool,
result: ReturnCode
)