FD.io VPP  v17.07.01-10-g3be13f0
Vector Packet Processing
dhcp6_packet.h File Reference
+ Include dependency graph for dhcp6_packet.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dhcpv6_hdr_
 
struct  dhcp_stats_counters_
 

Macros

#define DHCP_MAX_RELAY_ADDR   16
 
#define PROTO_UDP   17
 
#define DHCPV6_CLIENT_PORT   546
 
#define DHCPV6_SERVER_PORT   547
 
#define HOP_COUNT_LIMIT   32
 
#define DHCPV6_CISCO_ENT_NUM   9
 

Typedefs

typedef enum dhcpv6_msg_type_ dhcpv6_msg_type_t
 
typedef struct dhcpv6_hdr_ dhcpv6_header_t
 
typedef enum dhcp_stats_action_type_ dhcp_stats_action_type_t
 
typedef struct dhcp_stats_counters_ dhcp_stats_counters_t
 
typedef enum dhcpv6_stats_drop_reason_ dhcpv6_stats_drop_reason_t
 

Enumerations

enum  dhcpv6_msg_type_ {
  DHCPV6_MSG_SOLICIT = 1, DHCPV6_MSG_ADVERTISE = 2, DHCPV6_MSG_REQUEST = 3, DHCPV6_MSG_CONFIRM = 4,
  DHCPV6_MSG_RENEW = 5, DHCPV6_MSG_REBIND = 6, DHCPV6_MSG_REPLY = 7, DHCPV6_MSG_RELEASE = 8,
  DHCPV6_MSG_DECLINE = 9, DHCPV6_MSG_RECONFIGURE = 10, DHCPV6_MSG_INFORMATION_REQUEST = 11, DHCPV6_MSG_RELAY_FORW = 12,
  DHCPV6_MSG_RELAY_REPL = 13
}
 
enum  {
  DHCPV6_OPTION_CLIENTID = 1, DHCPV6_OPTION_SERVERID = 2, DHCPV6_OPTION_IA_NA = 3, DHCPV6_OPTION_IA_TA = 4,
  DHCPV6_OPTION_IAADDR = 5, DHCPV6_OPTION_ORO = 6, DHCPV6_OPTION_PREFERENCE = 7, DHCPV6_OPTION_ELAPSED_TIME = 8,
  DHCPV6_OPTION_RELAY_MSG = 9, DHCPV6_OPTION_AUTH = 11, DHCPV6_OPTION_UNICAST = 12, DHCPV6_OPTION_STATUS_CODE = 13,
  DHCPV6_OPTION_RAPID_COMMIT = 14, DHCPV6_OPTION_USER_CLASS = 15, DHCPV6_OPTION_VENDOR_CLASS = 16, DHCPV6_OPTION_VENDOR_OPTS = 17,
  DHCPV6_OPTION_INTERFACE_ID = 18, DHCPV6_OPTION_RECONF_MSG = 19, DHCPV6_OPTION_RECONF_ACCEPT = 20, DHCPV6_OPTION_REMOTEID = 37,
  DHCPV6_OPTION_VSS = 68, DHCPV6_OPTION_CLIENT_LINK_LAYER_ADDRESS = 79, DHCPV6_OPTION_MAX
}
 
enum  {
  DHCPV6_STATUS_SUCCESS = 0, DHCPV6_STATUS_UNSPEC_FAIL = 1, DHCPV6_STATUS_NOADDRS_AVAIL = 2, DHCPV6_STATUS_NO_BINDING = 3,
  DHCPV6_STATUS_NOT_ONLINK = 4, DHCPV6_STATUS_USE_MULTICAST = 5
}
 
enum  { DHCPV6_DUID_LLT = 1, DHCPV6_DUID_EN = 2, DHCPV6_DUID_LL = 3 }
 
enum  dhcp_stats_action_type_ { DHCP_STATS_ACTION_FORWARDED =1, DHCP_STATS_ACTION_RECEIVED, DHCP_STATS_ACTION_DROPPED }
 
enum  dhcpv6_stats_drop_reason_ {
  DHCPV6_RELAY_PKT_DROP_RELAYDISABLE = 1, DHCPV6_RELAY_PKT_DROP_MAX_HOPS, DHCPV6_RELAY_PKT_DROP_VALIDATION_FAIL, DHCPV6_RELAY_PKT_DROP_UNKNOWN_OP_INTF,
  DHCPV6_RELAY_PKT_DROP_BAD_CONTEXT, DHCPV6_RELAY_PKT_DROP_OPT_INSERT_FAIL, DHCPV6_RELAY_PKT_DROP_REPLY_FROM_CLIENT
}
 

Functions

typedef CLIB_PACKED (struct dhcpv6_relay_ctx_{dhcpv6_header_t *pkt;u32 pkt_len;u32 dhcpv6_len;u32 if_index;u32 ctx_id;char ctx_name[32+1];u8 dhcp_msg_type;}) dhcpv6_relay_ctx_t
 
typedef CLIB_PACKED (struct dhcpv6_relay_hdr_{u8 msg_type;u8 hop_count;ip6_address_t link_addr;ip6_address_t peer_addr;u8 data[0];}) dhcpv6_relay_hdr_t
 
typedef CLIB_PACKED (struct{u16 option;u16 length;u8 data[0];}) dhcpv6_option_t
 
typedef CLIB_PACKED (struct{dhcpv6_option_t opt;u32 int_idx;}) dhcpv6_int_id_t
 
typedef CLIB_PACKED (struct{dhcpv6_option_t opt;u8 data[8];}) dhcpv6_vss_t
 
typedef CLIB_PACKED (struct{dhcpv6_option_t opt;u32 ent_num;u32 rmt_id;}) dhcpv6_rmt_id_t
 
typedef CLIB_PACKED (struct{dhcpv6_option_t opt;u16 link_type;u8 data[6];}) dhcpv6_client_mac_t
 

Macro Definition Documentation

#define DHCP_MAX_RELAY_ADDR   16

Definition at line 24 of file dhcp6_packet.h.

#define DHCPV6_CISCO_ENT_NUM   9

Definition at line 29 of file dhcp6_packet.h.

#define DHCPV6_CLIENT_PORT   546

Definition at line 26 of file dhcp6_packet.h.

#define DHCPV6_SERVER_PORT   547

Definition at line 27 of file dhcp6_packet.h.

#define HOP_COUNT_LIMIT   32

Definition at line 28 of file dhcp6_packet.h.

#define PROTO_UDP   17

Definition at line 25 of file dhcp6_packet.h.

Typedef Documentation

typedef struct dhcpv6_hdr_ dhcpv6_header_t

Enumeration Type Documentation

anonymous enum
Enumerator
DHCPV6_OPTION_CLIENTID 
DHCPV6_OPTION_SERVERID 
DHCPV6_OPTION_IA_NA 
DHCPV6_OPTION_IA_TA 
DHCPV6_OPTION_IAADDR 
DHCPV6_OPTION_ORO 
DHCPV6_OPTION_PREFERENCE 
DHCPV6_OPTION_ELAPSED_TIME 
DHCPV6_OPTION_RELAY_MSG 
DHCPV6_OPTION_AUTH 
DHCPV6_OPTION_UNICAST 
DHCPV6_OPTION_STATUS_CODE 
DHCPV6_OPTION_RAPID_COMMIT 
DHCPV6_OPTION_USER_CLASS 
DHCPV6_OPTION_VENDOR_CLASS 
DHCPV6_OPTION_VENDOR_OPTS 
DHCPV6_OPTION_INTERFACE_ID 
DHCPV6_OPTION_RECONF_MSG 
DHCPV6_OPTION_RECONF_ACCEPT 
DHCPV6_OPTION_REMOTEID 
DHCPV6_OPTION_VSS 
DHCPV6_OPTION_CLIENT_LINK_LAYER_ADDRESS 
DHCPV6_OPTION_MAX 

Definition at line 53 of file dhcp6_packet.h.

anonymous enum
Enumerator
DHCPV6_STATUS_SUCCESS 
DHCPV6_STATUS_UNSPEC_FAIL 
DHCPV6_STATUS_NOADDRS_AVAIL 
DHCPV6_STATUS_NO_BINDING 
DHCPV6_STATUS_NOT_ONLINK 
DHCPV6_STATUS_USE_MULTICAST 

Definition at line 82 of file dhcp6_packet.h.

anonymous enum
Enumerator
DHCPV6_DUID_LLT 
DHCPV6_DUID_EN 
DHCPV6_DUID_LL 

Definition at line 94 of file dhcp6_packet.h.

Enumerator
DHCP_STATS_ACTION_FORWARDED 
DHCP_STATS_ACTION_RECEIVED 
DHCP_STATS_ACTION_DROPPED 

Definition at line 131 of file dhcp6_packet.h.

Enumerator
DHCPV6_MSG_SOLICIT 
DHCPV6_MSG_ADVERTISE 
DHCPV6_MSG_REQUEST 
DHCPV6_MSG_CONFIRM 
DHCPV6_MSG_RENEW 
DHCPV6_MSG_REBIND 
DHCPV6_MSG_REPLY 
DHCPV6_MSG_RELEASE 
DHCPV6_MSG_DECLINE 
DHCPV6_MSG_RECONFIGURE 
DHCPV6_MSG_INFORMATION_REQUEST 
DHCPV6_MSG_RELAY_FORW 
DHCPV6_MSG_RELAY_REPL 

Definition at line 34 of file dhcp6_packet.h.

Enumerator
DHCPV6_RELAY_PKT_DROP_RELAYDISABLE 
DHCPV6_RELAY_PKT_DROP_MAX_HOPS 
DHCPV6_RELAY_PKT_DROP_VALIDATION_FAIL 
DHCPV6_RELAY_PKT_DROP_UNKNOWN_OP_INTF 
DHCPV6_RELAY_PKT_DROP_BAD_CONTEXT 
DHCPV6_RELAY_PKT_DROP_OPT_INSERT_FAIL 
DHCPV6_RELAY_PKT_DROP_REPLY_FROM_CLIENT 

Definition at line 144 of file dhcp6_packet.h.

Function Documentation

typedef CLIB_PACKED ( struct dhcpv6_relay_ctx_{dhcpv6_header_t *pkt;u32 pkt_len;u32 dhcpv6_len;u32 if_index;u32 ctx_id;char ctx_name[32+1];u8 dhcp_msg_type;}  )
typedef CLIB_PACKED ( struct dhcpv6_relay_hdr_{u8 msg_type;u8 hop_count;ip6_address_t link_addr;ip6_address_t peer_addr;u8 data[0];}  )
typedef CLIB_PACKED ( struct{u16 option;u16 length;u8 data[0];}  )
typedef CLIB_PACKED ( struct{dhcpv6_option_t opt;u32 int_idx;}  )
typedef CLIB_PACKED ( struct{dhcpv6_option_t opt;u8 data[8];}  )
typedef CLIB_PACKED ( struct{dhcpv6_option_t opt;u32 ent_num;u32 rmt_id;}  )
typedef CLIB_PACKED ( struct{dhcpv6_option_t opt;u16 link_type;u8 data[6];}  )