| KallistiOS
    ##version##
    | 
Structure describing one usable network device. More...
#include <kos/net.h>
| Public Member Functions | |
| LIST_ENTRY (knetif) if_list | |
| Device list handle (not a function!)  More... | |
| Data Fields | |
| const char * | name | 
| Device name ("bba", "la", etc)  More... | |
| const char * | descr | 
| Long description of the device.  More... | |
| int | index | 
| Unit index (starts at zero and counts upwards for multiple network devices of the same type)  More... | |
| uint32 | dev_id | 
| Internal device ID (for whatever the driver wants)  More... | |
| uint32 | flags | 
| Interface flags.  More... | |
| uint8 | mac_addr [6] | 
| The device's MAC address.  More... | |
| uint8 | ip_addr [4] | 
| The device's IP address (if any)  More... | |
| uint8 | netmask [4] | 
| The device's netmask.  More... | |
| uint8 | gateway [4] | 
| The device's gateway's IP address.  More... | |
| uint8 | broadcast [4] | 
| The device's broadcast address.  More... | |
| uint8 | dns [4] | 
| The device's DNS server address.  More... | |
| int | mtu | 
| The device's MTU.  More... | |
| struct in6_addr | ip6_lladdr | 
| The device's Link-local IPv6 address.  More... | |
| struct in6_addr * | ip6_addrs | 
| Any further IPv6 addresses the device has. The first address in this list will always be used, unless otherwise specified.  More... | |
| int | ip6_addr_count | 
| struct in6_addr | ip6_gateway | 
| The device's gateway's IPv6 address.  More... | |
| uint32 | mtu6 | 
| Default MTU over IPv6.  More... | |
| int | hop_limit | 
| Default hop limit over IPv6.  More... | |
| int(* | if_detect )(struct knetif *self) | 
| Attempt to detect the device.  More... | |
| int(* | if_init )(struct knetif *self) | 
| Initialize the device.  More... | |
| int(* | if_shutdown )(struct knetif *self) | 
| Shutdown the device.  More... | |
| int(* | if_start )(struct knetif *self) | 
| Start the device (after init or stop).  More... | |
| int(* | if_stop )(struct knetif *self) | 
| Stop (hibernate) the device.  More... | |
| int(* | if_tx )(struct knetif *self, const uint8 *data, int len, int blocking) | 
| Queue a packet for transmission.  More... | |
| int(* | if_tx_commit )(struct knetif *self) | 
| Commit any queued output packets.  More... | |
| int(* | if_rx_poll )(struct knetif *self) | 
| Poll for queued receive packets, if neccessary.  More... | |
| int(* | if_set_flags )(struct knetif *self, uint32 flags_and, uint32 flags_or) | 
| Set flags; you should generally manipulate flags through here so that the driver gets a chance to act on the info.  More... | |
| int(* | if_set_mc )(struct knetif *self, const uint8 *list, int count) | 
| Set the device's multicast list.  More... | |
Structure describing one usable network device.
Each usable network device should have one of these describing it. These must be registered to the network layer before the device is useable.
| knetif::LIST_ENTRY | ( | knetif | ) | 
Device list handle (not a function!)
| uint8 knetif::broadcast[4] | 
The device's broadcast address.
| const char* knetif::descr | 
Long description of the device.
| uint32 knetif::dev_id | 
Internal device ID (for whatever the driver wants)
| uint8 knetif::dns[4] | 
The device's DNS server address.
| uint32 knetif::flags | 
Interface flags.
| uint8 knetif::gateway[4] | 
The device's gateway's IP address.
| int knetif::hop_limit | 
Default hop limit over IPv6.
| int(* knetif::if_detect)(struct knetif *self) | 
Attempt to detect the device.
| self | The network device in question. | 
| int(* knetif::if_init)(struct knetif *self) | 
Initialize the device.
| self | The network device in question. | 
| int(* knetif::if_rx_poll)(struct knetif *self) | 
Poll for queued receive packets, if neccessary.
| self | The network device in question. | 
Set flags; you should generally manipulate flags through here so that the driver gets a chance to act on the info.
| self | The network device in question. | 
| flags_and | Bitmask to and with the flags. | 
| flags_or | Bitmask to or with the flags. | 
Set the device's multicast list.
| self | The network device in question. | 
| list | The list of MAC addresses (6 * count bytes). | 
| count | The number of addresses in list. | 
| int(* knetif::if_shutdown)(struct knetif *self) | 
Shutdown the device.
| self | The network device in question. | 
| int(* knetif::if_start)(struct knetif *self) | 
Start the device (after init or stop).
| self | The network device in question. | 
| int(* knetif::if_stop)(struct knetif *self) | 
Stop (hibernate) the device.
| self | The network device in question. | 
Queue a packet for transmission.
| self | The network device in question. | 
| data | The packet to transmit. | 
| len | The length of the packet in bytes. | 
| blocking | 1 if we should block if needed, 0 otherwise. | 
| NETIF_TX_OK | On success. | 
| NETIF_TX_ERROR | On general failure. | 
| NETIF_TX_AGAIN | If non-blocking and we must block to send. | 
| int(* knetif::if_tx_commit)(struct knetif *self) | 
Commit any queued output packets.
| self | The network device in question. | 
| int knetif::index | 
Unit index (starts at zero and counts upwards for multiple network devices of the same type)
| int knetif::ip6_addr_count | 
| struct in6_addr* knetif::ip6_addrs | 
Any further IPv6 addresses the device has. The first address in this list will always be used, unless otherwise specified.
| struct in6_addr knetif::ip6_gateway | 
The device's gateway's IPv6 address.
| struct in6_addr knetif::ip6_lladdr | 
The device's Link-local IPv6 address.
| uint8 knetif::ip_addr[4] | 
The device's IP address (if any)
| uint8 knetif::mac_addr[6] | 
The device's MAC address.
| int knetif::mtu | 
The device's MTU.
| uint32 knetif::mtu6 | 
Default MTU over IPv6.
| const char* knetif::name | 
Device name ("bba", "la", etc)
| uint8 knetif::netmask[4] | 
The device's netmask.
 1.8.7
 1.8.7