Struct esp_idf_hal::sys::netif
source · #[repr(C)]pub struct netif {Show 30 fields
pub next: *mut netif,
pub ip_addr: ip_addr,
pub netmask: ip_addr,
pub gw: ip_addr,
pub ip6_addr: [ip_addr; 3],
pub ip6_addr_state: [u8; 3],
pub ip6_addr_valid_life: [u32; 3],
pub ip6_addr_pref_life: [u32; 3],
pub input: Option<unsafe extern "C" fn(_: *mut pbuf, _: *mut netif) -> i8>,
pub output: Option<unsafe extern "C" fn(_: *mut netif, _: *mut pbuf, _: *const ip4_addr) -> i8>,
pub linkoutput: Option<unsafe extern "C" fn(_: *mut netif, _: *mut pbuf) -> i8>,
pub output_ip6: Option<unsafe extern "C" fn(_: *mut netif, _: *mut pbuf, _: *const ip6_addr) -> i8>,
pub state: *mut c_void,
pub client_data: [*mut c_void; 3],
pub hostname: *const i8,
pub mtu: u16,
pub mtu6: u16,
pub hwaddr: [u8; 6],
pub hwaddr_len: u8,
pub flags: u8,
pub name: [i8; 2],
pub num: u8,
pub ip6_autoconfig_enabled: u8,
pub rs_count: u8,
pub igmp_mac_filter: Option<unsafe extern "C" fn(_: *mut netif, _: *const ip4_addr, _: u32) -> i8>,
pub mld_mac_filter: Option<unsafe extern "C" fn(_: *mut netif, _: *const ip6_addr, _: u32) -> i8>,
pub loop_first: *mut pbuf,
pub loop_last: *mut pbuf,
pub loop_cnt_current: u16,
pub reschedule_poll: u8,
}
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
IP address configuration in network byte order
netmask: ip_addr
§gw: ip_addr
§ip6_addr: [ip_addr; 3]
Array of IPv6 addresses for this netif.
ip6_addr_state: [u8; 3]
The state of each IPv6 address (Tentative, Preferred, etc). @see ip6_addr.h
ip6_addr_valid_life: [u32; 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; 3]
§input: Option<unsafe extern "C" fn(_: *mut pbuf, _: *mut netif) -> i8>
This function is called by the network device driver to pass a packet up the TCP/IP stack.
output: Option<unsafe extern "C" fn(_: *mut netif, _: *mut pbuf, _: *const ip4_addr) -> i8>
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: Option<unsafe extern "C" fn(_: *mut netif, _: *mut pbuf) -> i8>
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: Option<unsafe extern "C" fn(_: *mut netif, _: *mut pbuf, _: *const ip6_addr) -> i8>
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 i8
§mtu: u16
maximum transfer unit (in bytes)
mtu6: u16
maximum transfer unit (in bytes), updated by RA
hwaddr: [u8; 6]
link level hardware address of this interface
hwaddr_len: u8
number of bytes used in hwaddr
flags: u8
flags (@see @ref netif_flags)
name: [i8; 2]
descriptive abbreviation
num: u8
number of this interface. Used for @ref if_api and @ref netifapi_netif, as well as for IPv6 zones
ip6_autoconfig_enabled: u8
is this netif enabled for IPv6 autoconfiguration
rs_count: u8
Number of Router Solicitation messages that remain to be sent.
igmp_mac_filter: Option<unsafe extern "C" fn(_: *mut netif, _: *const ip4_addr, _: u32) -> i8>
This function could be called to add or delete an entry in the multicast filter table of the ethernet MAC.
mld_mac_filter: Option<unsafe extern "C" fn(_: *mut netif, _: *const ip6_addr, _: u32) -> i8>
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
§reschedule_poll: u8
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
)