15 #define IP6_VERSION 0x6
16 #define IP6_HOP_LIMIT 255
19 * Packet buffer contents
20 * This is duplicated in tcp.h and here. Ideally it should go into pkbuff.h
22 #define MAX_HDR_LEN 100
23 #define MAX_PKB_LEN 1500
24 #define MIN_PKB_LEN MAX_HDR_LEN + 100 /* To account for padding by LL */
26 #define IP6_EQUAL( in6_addr1, in6_addr2 ) \
27 ( strncmp ( ( char* ) &( in6_addr1 ), ( char* ) &( in6_addr2 ),\
28 sizeof ( struct in6_addr ) ) == 0 )
30 #define IS_UNSPECIFIED( addr ) \
31 ( ( (addr).in6_u.u6_addr32[0] == 0x00000000 ) && \
32 ( (addr).in6_u.u6_addr32[1] == 0x00000000 ) && \
33 ( (addr).in6_u.u6_addr32[2] == 0x00000000 ) && \
34 ( (addr).in6_u.u6_addr32[3] == 0x00000000 ) )
37 uint32_t ver_traffic_class_flow_label;
45 /* IP6 pseudo header */
46 struct ipv6_pseudo_header {
54 /* Next header numbers */
55 #define IP6_HOPBYHOP 0x00
56 #define IP6_ROUTING 0x43
57 #define IP6_FRAGMENT 0x44
58 #define IP6_AUTHENTICATION 0x51
59 #define IP6_DEST_OPTS 0x60
61 #define IP6_ICMP6 0x58
62 #define IP6_NO_HEADER 0x59
68 extern struct net_protocol ipv6_protocol;
69 extern struct tcpip_net_protocol ipv6_tcpip_protocol;
70 extern char * inet6_ntoa ( struct in6_addr in6 );
72 extern int add_ipv6_address ( struct net_device *netdev,
73 struct in6_addr prefix, int prefix_len,
74 struct in6_addr address,
75 struct in6_addr gateway );
76 extern void del_ipv6_address ( struct net_device *netdev );
78 #endif /* _GPXE_IP6_H */