iPXE
icmpv6.h File Reference

ICMPv6 protocol. More...

#include <stdint.h>
#include <ipxe/tables.h>
#include <ipxe/iobuf.h>
#include <ipxe/netdevice.h>
#include <ipxe/icmp.h>

Go to the source code of this file.

Data Structures

struct  icmpv6_handler
 An ICMPv6 handler. More...

Macros

#define ICMPV6_HANDLERS   __table ( struct icmpv6_handler, "icmpv6_handlers" )
 ICMPv6 handler table.
#define __icmpv6_handler   __table_entry ( ICMPV6_HANDLERS, 01 )
 Declare an ICMPv6 handler.
#define ICMPV6_DESTINATION_UNREACHABLE   1
 ICMPv6 destination unreachable.
#define ICMPV6_PACKET_TOO_BIG   2
 ICMPv6 packet too big.
#define ICMPV6_TIME_EXCEEDED   3
 ICMPv6 time exceeded.
#define ICMPV6_PARAMETER_PROBLEM   4
 ICMPv6 parameter problem.
#define ICMPV6_ECHO_REQUEST   128
 ICMPv6 echo request.
#define ICMPV6_ECHO_REPLY   129
 ICMPv6 echo reply.
#define ICMPV6_ROUTER_SOLICITATION   133
 ICMPv6 router solicitation.
#define ICMPV6_ROUTER_ADVERTISEMENT   134
 ICMPv6 router advertisement.
#define ICMPV6_NEIGHBOUR_SOLICITATION   135
 ICMPv6 neighbour solicitation.
#define ICMPV6_NEIGHBOUR_ADVERTISEMENT   136
 ICMPv6 neighbour advertisement.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)

Variables

struct tcpip_protocol icmpv6_protocol __tcpip_protocol
 ICMPv4 TCP/IP protocol.

Detailed Description

ICMPv6 protocol.

Definition in file icmpv6.h.

Macro Definition Documentation

◆ ICMPV6_HANDLERS

#define ICMPV6_HANDLERS   __table ( struct icmpv6_handler, "icmpv6_handlers" )

ICMPv6 handler table.

Definition at line 39 of file icmpv6.h.

Referenced by icmpv6_handler().

◆ __icmpv6_handler

struct icmpv6_handler icmpv6_echo_reply_handler __icmpv6_handler   __table_entry ( ICMPV6_HANDLERS, 01 )

Declare an ICMPv6 handler.

ICMPv6 echo reply handler.

Definition at line 42 of file icmpv6.h.

◆ ICMPV6_DESTINATION_UNREACHABLE

#define ICMPV6_DESTINATION_UNREACHABLE   1

ICMPv6 destination unreachable.

Definition at line 45 of file icmpv6.h.

Referenced by icmpv6_rx().

◆ ICMPV6_PACKET_TOO_BIG

#define ICMPV6_PACKET_TOO_BIG   2

ICMPv6 packet too big.

Definition at line 48 of file icmpv6.h.

Referenced by icmpv6_rx().

◆ ICMPV6_TIME_EXCEEDED

#define ICMPV6_TIME_EXCEEDED   3

ICMPv6 time exceeded.

Definition at line 51 of file icmpv6.h.

Referenced by icmpv6_rx().

◆ ICMPV6_PARAMETER_PROBLEM

#define ICMPV6_PARAMETER_PROBLEM   4

ICMPv6 parameter problem.

Definition at line 54 of file icmpv6.h.

Referenced by icmpv6_rx().

◆ ICMPV6_ECHO_REQUEST

#define ICMPV6_ECHO_REQUEST   128

ICMPv6 echo request.

Definition at line 57 of file icmpv6.h.

◆ ICMPV6_ECHO_REPLY

#define ICMPV6_ECHO_REPLY   129

ICMPv6 echo reply.

Definition at line 60 of file icmpv6.h.

◆ ICMPV6_ROUTER_SOLICITATION

#define ICMPV6_ROUTER_SOLICITATION   133

ICMPv6 router solicitation.

Definition at line 63 of file icmpv6.h.

Referenced by ndp_tx_router_solicitation().

◆ ICMPV6_ROUTER_ADVERTISEMENT

#define ICMPV6_ROUTER_ADVERTISEMENT   134

ICMPv6 router advertisement.

Definition at line 66 of file icmpv6.h.

◆ ICMPV6_NEIGHBOUR_SOLICITATION

#define ICMPV6_NEIGHBOUR_SOLICITATION   135

ICMPv6 neighbour solicitation.

Definition at line 69 of file icmpv6.h.

Referenced by ndp_tx_request().

◆ ICMPV6_NEIGHBOUR_ADVERTISEMENT

#define ICMPV6_NEIGHBOUR_ADVERTISEMENT   136

ICMPv6 neighbour advertisement.

Definition at line 72 of file icmpv6.h.

Referenced by ndp_rx_neighbour_solicitation_ll_source().

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

Variable Documentation

◆ __tcpip_protocol

struct tcpip_protocol icmpv6_protocol __tcpip_protocol
extern

ICMPv4 TCP/IP protocol.

ICMPv4 TCP/IP protocol.

Definition at line 101 of file icmpv4.c.

101 {
102 .name = "ICMPv4",
103 .rx = icmpv4_rx,
104 .tcpip_proto = IP_ICMP,
105};
static int icmpv4_rx(struct io_buffer *iobuf, struct net_device *netdev __unused, struct sockaddr_tcpip *st_src, struct sockaddr_tcpip *st_dest __unused, uint16_t pshdr_csum __unused)
Process a received packet.
Definition icmpv4.c:52
#define IP_ICMP
Definition in.h:13