diff options
Diffstat (limited to 'src/include/ipxe/ndp.h')
| -rw-r--r-- | src/include/ipxe/ndp.h | 14 |
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 */ |
