mirror of
https://github.com/ipxe/ipxe
synced 2025-12-19 11:00:27 +03:00
[ipv6] Create routing table based on IPv6 settings
Use the IPv6 settings to construct the routing table, in a matter
analogous to the construction of the IPv4 routing table.
This allows for manual assignment of IPv6 addresses via e.g.
set net0/ip6 2001:ba8:0:1d4::6950:5845
set net0/len6 64
set net0/gateway6 fe80::226:bff:fedd:d3c0
The prefix length ("len6") may be omitted, in which case a default
prefix length of 64 will be assumed.
Multiple IPv6 addresses may be assigned manually by implicitly
creating child settings blocks. For example:
set net0/ip6 2001:ba8:0:1d4::6950:5845
set net0.ula/ip6 fda4:2496:e992::6950:5845
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -25,6 +25,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
/** IPv6 maximum hop limit */
|
||||
#define IPV6_HOP_LIMIT 0xff
|
||||
|
||||
/** IPv6 default prefix length */
|
||||
#define IPV6_DEFAULT_PREFIX_LEN 64
|
||||
|
||||
/** IPv6 maximum prefix length */
|
||||
#define IPV6_MAX_PREFIX_LEN 128
|
||||
|
||||
/** IPv6 header */
|
||||
struct ipv6_header {
|
||||
/** Version (4 bits), Traffic class (8 bits), Flow label (20 bits) */
|
||||
@@ -258,10 +264,6 @@ extern struct list_head ipv6_miniroutes;
|
||||
extern struct net_protocol ipv6_protocol __net_protocol;
|
||||
|
||||
extern int ipv6_has_addr ( struct net_device *netdev, struct in6_addr *addr );
|
||||
extern int ipv6_set_prefix ( struct net_device *netdev, struct in6_addr *prefix,
|
||||
unsigned int prefix_len, struct in6_addr *router );
|
||||
extern int ipv6_set_address ( struct net_device *netdev,
|
||||
struct in6_addr *address );
|
||||
extern int parse_ipv6_setting ( const struct setting_type *type,
|
||||
const char *value, void *buf, size_t len );
|
||||
extern int format_ipv6_setting ( const struct setting_type *type,
|
||||
|
||||
Reference in New Issue
Block a user