iPXE
route_ipv6.c File Reference

IPv6 routing management. More...

#include <stdio.h>
#include <ipxe/netdevice.h>
#include <ipxe/ipv6.h>
#include <usr/route.h>

Go to the source code of this file.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
static void route_ipv6_print (struct net_device *netdev)
 Print IPv6 routing table.
struct routing_family ipv6_routing_family __routing_family (ROUTING_IPV6)
 IPv6 routing family.

Detailed Description

IPv6 routing management.

Definition in file route_ipv6.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ route_ipv6_print()

void route_ipv6_print ( struct net_device * netdev)
static

Print IPv6 routing table.

Parameters
netdevNetwork device

Definition at line 43 of file route_ipv6.c.

43 {
44 struct ipv6_miniroute *miniroute;
45
47 if ( miniroute->netdev != netdev )
48 continue;
49 printf ( "%s: %s/%d", netdev->name,
50 inet6_ntoa ( &miniroute->address ),
51 miniroute->prefix_len );
52 if ( miniroute->flags & IPV6_HAS_ROUTER )
53 printf ( " gw %s", inet6_ntoa ( &miniroute->router ) );
54 if ( ! ( miniroute->flags & IPV6_HAS_ADDRESS ) )
55 printf ( " (no address)" );
56 if ( ! netdev_is_open ( miniroute->netdev ) )
57 printf ( " (inaccessible)" );
58 printf ( "\n" );
59 }
60}
static struct net_device * netdev
Definition gdbudp.c:53
char * inet6_ntoa(const struct in6_addr *in)
Convert IPv6 address to standard notation.
Definition ipv6.c:895
struct list_head ipv6_miniroutes
List of IPv6 miniroutes.
Definition ipv6.c:61
@ IPV6_HAS_ROUTER
Routing table entry router address is valid.
Definition ipv6.h:207
@ IPV6_HAS_ADDRESS
Routing table entry address is valid.
Definition ipv6.h:205
#define list_for_each_entry(pos, head, member)
Iterate over entries in a list.
Definition list.h:432
static int netdev_is_open(struct net_device *netdev)
Check whether or not network device is open.
Definition netdevice.h:662
An IPv6 address/routing table entry.
Definition ipv6.h:181
struct net_device * netdev
Network device.
Definition ipv6.h:186
struct list_head list
List of miniroutes.
Definition ipv6.h:183
unsigned int prefix_len
Prefix length.
Definition ipv6.h:191
unsigned int flags
Flags.
Definition ipv6.h:199
struct in6_addr router
Router address.
Definition ipv6.h:195
struct in6_addr address
IPv6 address (or prefix if no address is defined)
Definition ipv6.h:189
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition vsprintf.c:465

References ipv6_miniroute::address, ipv6_miniroute::flags, inet6_ntoa(), IPV6_HAS_ADDRESS, IPV6_HAS_ROUTER, ipv6_miniroutes, ipv6_miniroute::list, list_for_each_entry, ipv6_miniroute::netdev, netdev, netdev_is_open(), ipv6_miniroute::prefix_len, printf(), and ipv6_miniroute::router.

Referenced by __routing_family().

◆ __routing_family()

struct routing_family ipv6_routing_family __routing_family ( ROUTING_IPV6 )

IPv6 routing family.

References __routing_family, route_ipv6_print(), and ROUTING_IPV6.