summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/ndp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/ipxe/ndp.h')
-rw-r--r--src/include/ipxe/ndp.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/include/ipxe/ndp.h b/src/include/ipxe/ndp.h
index 4edd96a40..f8c7e3fb3 100644
--- a/src/include/ipxe/ndp.h
+++ b/src/include/ipxe/ndp.h
@@ -124,12 +124,24 @@ struct ndp_router_advertisement_header {
/** NDP other configuration */
#define NDP_ROUTER_OTHER 0x40
+/** An NDP router solicitation header */
+struct ndp_router_solicitation_header {
+ /** ICMPv6 header */
+ struct icmp_header icmp;
+ /** Reserved */
+ uint32_t reserved;
+ /** Options */
+ union ndp_option option[0];
+} __attribute__ (( packed ));
+
/** An NDP header */
union ndp_header {
/** ICMPv6 header */
struct icmp_header icmp;
/** Neighbour solicitation or advertisement header */
struct ndp_neighbour_header neigh;
+ /** Router solicitation header */
+ struct ndp_router_solicitation_header rsol;
/** Router advertisement header */
struct ndp_router_advertisement_header radv;
} __attribute__ (( packed ));
@@ -154,4 +166,6 @@ static inline int ndp_tx ( struct io_buffer *iobuf, struct net_device *netdev,
&ndp_discovery, net_source, ll_source );
}
+extern int ndp_tx_router_solicitation ( struct net_device *netdev );
+
#endif /* _IPXE_NDP_H */