Struct esp_idf_sys::netif
source · #[repr(C)]pub struct netif {Show 30 fields
pub next: *mut netif,
pub ip_addr: ip_addr_t,
pub netmask: ip_addr_t,
pub gw: ip_addr_t,
pub ip6_addr: [ip_addr_t; 3],
pub ip6_addr_state: [u8_t; 3],
pub ip6_addr_valid_life: [u32_t; 3],
pub ip6_addr_pref_life: [u32_t; 3],
pub input: netif_input_fn,
pub output: netif_output_fn,
pub linkoutput: netif_linkoutput_fn,
pub output_ip6: netif_output_ip6_fn,
pub state: *mut c_void,
pub client_data: [*mut c_void; 3],
pub hostname: *const c_char,
pub mtu: u16_t,
pub mtu6: u16_t,
pub hwaddr: [u8_t; 6],
pub hwaddr_len: u8_t,
pub flags: u8_t,
pub name: [c_char; 2],
pub num: u8_t,
pub ip6_autoconfig_enabled: u8_t,
pub rs_count: u8_t,
pub igmp_mac_filter: netif_igmp_mac_filter_fn,
pub mld_mac_filter: netif_mld_mac_filter_fn,
pub loop_first: *mut pbuf,
pub loop_last: *mut pbuf,
pub loop_cnt_current: u16_t,
pub reschedule_poll: u8_t,
}
Expand description
Generic data structure used for all lwIP network interfaces. The following fields should be filled in by the initialization function for the device driver: hwaddr_len, hwaddr[], mtu, flags
Fields§
§next: *mut netif
pointer to next in linked list
ip_addr: ip_addr_t
IP address configuration in network byte order
netmask: ip_addr_t
§gw: ip_addr_t
§ip6_addr: [ip_addr_t; 3]
Array of IPv6 addresses for this netif.
ip6_addr_state: [u8_t; 3]
The state of each IPv6 address (Tentative, Preferred, etc). @see ip6_addr.h
ip6_addr_valid_life: [u32_t; 3]
Remaining valid and preferred lifetime of each IPv6 address, in seconds. For valid lifetimes, the special value of IP6_ADDR_LIFE_STATIC (0) indicates the address is static and has no lifetimes.
ip6_addr_pref_life: [u32_t; 3]
§input: netif_input_fn
This function is called by the network device driver to pass a packet up the TCP/IP stack.
output: netif_output_fn
This function is called by the IP module when it wants to send a packet on the interface. This function typically first resolves the hardware address, then sends the packet. For ethernet physical layer, this is usually etharp_output()
linkoutput: netif_linkoutput_fn
This function is called by ethernet_output() when it wants to send a packet on the interface. This function outputs the pbuf as-is on the link medium.
output_ip6: netif_output_ip6_fn
This function is called by the IPv6 module when it wants to send a packet on the interface. This function typically first resolves the hardware address, then sends the packet. For ethernet physical layer, this is usually ethip6_output()
state: *mut c_void
This field can be set by the device driver and could point to state information for the device.
client_data: [*mut c_void; 3]
§hostname: *const c_char
§mtu: u16_t
maximum transfer unit (in bytes)
mtu6: u16_t
maximum transfer unit (in bytes), updated by RA
hwaddr: [u8_t; 6]
link level hardware address of this interface
hwaddr_len: u8_t
number of bytes used in hwaddr
flags: u8_t
flags (@see @ref netif_flags)
name: [c_char; 2]
descriptive abbreviation
num: u8_t
number of this interface. Used for @ref if_api and @ref netifapi_netif, as well as for IPv6 zones
ip6_autoconfig_enabled: u8_t
is this netif enabled for IPv6 autoconfiguration
rs_count: u8_t
Number of Router Solicitation messages that remain to be sent.
igmp_mac_filter: netif_igmp_mac_filter_fn
This function could be called to add or delete an entry in the multicast filter table of the ethernet MAC.
mld_mac_filter: netif_mld_mac_filter_fn
This function could be called to add or delete an entry in the IPv6 multicast filter table of the ethernet MAC.
loop_first: *mut pbuf
§loop_last: *mut pbuf
§loop_cnt_current: u16_t
§reschedule_poll: u8_t
Trait Implementations§
Auto Trait Implementations§
impl Freeze for netif
impl RefUnwindSafe for netif
impl !Send for netif
impl !Sync for netif
impl Unpin for netif
impl UnwindSafe for netif
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)