iPXE
Data Fields
ipv4_miniroute Struct Reference

An IPv4 address/routing table entry. More...

#include <ip.h>

Data Fields

struct list_head list
 List of miniroutes. More...
 
struct net_devicenetdev
 Network device. More...
 
struct in_addr address
 IPv4 address. More...
 
struct in_addr network
 Subnet network address. More...
 
struct in_addr netmask
 Subnet mask. More...
 
struct in_addr gateway
 Gateway address, or zero. More...
 
struct in_addr hostmask
 Host mask. More...
 

Detailed Description

An IPv4 address/routing table entry.

Routing table entries are maintained in order of specificity. For a given destination address, the first matching table entry will be used as the egress route.

Definition at line 63 of file ip.h.

Field Documentation

◆ list

struct list_head ipv4_miniroute::list

List of miniroutes.

Definition at line 65 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_del_miniroute(), ipv4_del_miniroutes(), ipv4_has_addr(), ipv4_has_any_addr(), and ipv4_route().

◆ netdev

struct net_device* ipv4_miniroute::netdev

Network device.

When this routing table entry is matched, this is the egress network device to be used.

Definition at line 72 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_del_miniroute(), ipv4_has_addr(), ipv4_has_any_addr(), ipv4_netdev(), ipv4_route(), ipv4_route_okx(), ipv4_tx(), and route_ipv4_print().

◆ address

struct in_addr ipv4_miniroute::address

IPv4 address.

When this routing table entry is matched, this is the source address to be used.

The presence of this routing table entry also indicates that this address is a valid local destination address for the matching network device.

Definition at line 83 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_del_miniroute(), ipv4_has_addr(), ipv4_route_okx(), ipv4_tx(), and route_ipv4_print().

◆ network

struct in_addr ipv4_miniroute::network

Subnet network address.

A subnet is a range of addresses defined by a network address and subnet mask. A destination address with all of the subnet mask bits in common with the network address is within the subnet and therefore matches this routing table entry.

Definition at line 92 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_del_miniroute(), ipv4_route(), and route_ipv4_print().

◆ netmask

struct in_addr ipv4_miniroute::netmask

Subnet mask.

An address with all of these bits in common with the network address matches this routing table entry.

Definition at line 98 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_del_miniroute(), ipv4_route(), and route_ipv4_print().

◆ gateway

struct in_addr ipv4_miniroute::gateway

Gateway address, or zero.

When this routing table entry is matched and this address is non-zero, it will be used as the next-hop address.

When this routing table entry is matched and this address is zero, the subnet is local (on-link) and the next-hop address will be the original destination address.

Definition at line 108 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_del_miniroute(), ipv4_route(), and route_ipv4_print().

◆ hostmask

struct in_addr ipv4_miniroute::hostmask

Host mask.

An address in a local subnet with all of these bits set to zero represents the network address, and an address in a local subnet with all of these bits set to one represents the local directed broadcast address. All other addresses in a local subnet are valid host addresses.

For most local subnets, this is the inverse of the subnet mask. In a small subnet (/31 or /32) there is no network address or directed broadcast address, and all addresses in the subnet are valid host addresses.

When this routing table entry is matched and the subnet is local, a next-hop address with all of these bits set to one will be treated as a local broadcast address. All other next-hop addresses will be treated as unicast addresses.

When this routing table entry is matched and the subnet is non-local, the next-hop address is always a unicast address. The host mask for non-local subnets is therefore set to INADDR_NONE to allow the same logic to be used as for local subnets.

Definition at line 133 of file ip.h.

Referenced by ipv4_add_miniroute(), ipv4_route_okx(), and ipv4_tx().


The documentation for this struct was generated from the following file: