21#define IPV6_VER 0x60000000UL
24#define IPV6_MASK_VER 0xf0000000UL
27#define IPV6_HOP_LIMIT 0xff
30#define IPV6_DEFAULT_PREFIX_LEN 64
33#define IPV6_MAX_PREFIX_LEN 128
78#define IPV6_CAN_IGNORE_OPT( type ) ( ( (type) & 0xc0 ) == 0x00 )
111#define IPV6_MASK_OFFSET 0xfff8
114#define IPV6_MASK_MOREFRAGS 0x0001
220 const void *ll_addr =
netdev->ll_addr;
225 addr->s6_addr[8] ^= 0x02;
253 addr->s6_addr[11] = 1;
254 addr->s6_addr[12] = 0xff;
255 memcpy ( &
addr->s6_addr[13], &unicast->s6_addr[13], 3 );
265 addr->s6_addr[15] = 2;
274static inline unsigned int
277 return (
addr->s6_addr[1] & 0x0f );
293#define IPV6_SETTINGS_NAME "link"
302 unsigned int prefix_len,
308 const char *
value,
void *buf,
size_t len );
struct arbelprm_rc_send_wqe rc
pseudo_bit_t value[0x00020]
if(len >=6 *4) __asm__ __volatile__("movsl" if(len >=5 *4) __asm__ __volatile__("movsl" if(len >=4 *4) __asm__ __volatile__("movsl" if(len >=3 *4) __asm__ __volatile__("movsl" if(len >=2 *4) __asm__ __volatile__("movsl" if(len >=1 *4) __asm__ __volatile__("movsl" if((len % 4) >=2) __asm__ __volatile__("movsw" if((len % 2) >=1) __asm__ __volatile__("movsb" retur dest)
uint32_t addr
Buffer address.
uint32_t type
Operating system type.
uint64_t address
Base address.
static struct net_device * netdev
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
struct list_head ipv6_miniroutes
List of IPv6 miniroutes.
static int ipv6_eui64(struct in6_addr *addr, struct net_device *netdev)
Construct local IPv6 address via EUI-64.
void ipv6_del_miniroute(struct ipv6_miniroute *miniroute)
Delete IPv6 minirouting table entry.
static unsigned int ipv6_multicast_scope(const struct in6_addr *addr)
Get multicast address scope.
ipv6_option_type
IPv6 option types.
int parse_ipv6_setting(const struct setting_type *type, const char *value, void *buf, size_t len)
static void ipv6_solicited_node(struct in6_addr *addr, const struct in6_addr *unicast)
Construct solicited-node multicast address.
static void ipv6_all_routers(struct in6_addr *addr)
Construct all-routers multicast address.
int format_ipv6_setting(const struct setting_type *type, const void *raw, size_t raw_len, char *buf, size_t len)
struct ipv6_miniroute * ipv6_route(unsigned int scope_id, struct in6_addr **dest)
Perform IPv6 routing.
ipv6_header_type
IPv6 header types.
@ IPV6_NO_HEADER
IPv6 no next header type.
@ IPV6_HOPBYHOP
IPv6 hop-by-hop options header type.
@ IPV6_FRAGMENT
IPv6 fragment header type.
@ IPV6_DESTINATION
IPv6 destination options header type.
@ IPV6_ROUTING
IPv6 routing header type.
ipv6_miniroute_flags
IPv6 address/routing table entry flags.
@ IPV6_HAS_ROUTER
Routing table entry router address is valid.
@ IPV6_HAS_ADDRESS
Routing table entry address is valid.
int ipv6_has_addr(struct net_device *netdev, struct in6_addr *addr)
Check if network device has a specific IPv6 address.
ipv6_settings_order
IPv6 settings sibling order.
@ IPV6_ORDER_PREFIX_ONLY
No address.
@ IPV6_ORDER_SLAAC
Address assigned via SLAAC.
@ IPV6_ORDER_DHCPV6
Address assigned via DHCPv6.
@ IPV6_ORDER_LINK_LOCAL
Link-local address.
ipv6_address_scope
IPv6 address scopes.
@ IPV6_SCOPE_SITE_LOCAL
Site-local address scope.
@ IPV6_SCOPE_GLOBAL
Global address scope.
@ IPV6_SCOPE_MAX
Maximum scope.
@ IPV6_SCOPE_ORGANISATION_LOCAL
Organisation-local address scope.
@ IPV6_SCOPE_LINK_LOCAL
Link-local address scope.
@ INV6_SCOPE_ADMIN_LOCAL
Admin-local address scope.
@ IPV6_SCOPE_INTERFACE_LOCAL
Interface-local address scope.
static int ipv6_link_local(struct in6_addr *addr, struct net_device *netdev)
Construct link-local address via EUI-64.
int ipv6_add_miniroute(struct net_device *netdev, struct in6_addr *address, unsigned int prefix_len, struct in6_addr *router)
Add IPv6 routing table entry.
Network device management.
#define __net_protocol
Declare a network-layer protocol.
An IPv6 address/routing table entry.
struct net_device * netdev
Network device.
struct list_head list
List of miniroutes.
unsigned int prefix_len
Prefix length.
struct in6_addr router
Router address.
struct in6_addr address
IPv6 address (or prefix if no address is defined)
struct in6_addr prefix_mask
IPv6 prefix mask (derived from prefix length)
IPv6 type-length-value options.
A doubly-linked list entry (or list head)
int(* eui64)(const void *ll_addr, void *eui64)
Generate EUI-64 address.
A network-layer protocol.