FD.io VPP
v18.07-rc0-415-g6c78436
Vector Packet Processing
Main Page
Related Pages
Modules
Namespaces
Data Structures
Source
Files
Symbols
dhcp4_packet.h
Go to the documentation of this file.
1
#ifndef included_vnet_dhcp4_packet_h
2
#define included_vnet_dhcp4_packet_h
3
4
/*
5
* DHCP packet format
6
*
7
* Copyright (c) 2013 Cisco and/or its affiliates.
8
* Licensed under the Apache License, Version 2.0 (the "License");
9
* you may not use this file except in compliance with the License.
10
* You may obtain a copy of the License at:
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
19
*/
20
#include <
vnet/ip/ip4_packet.h
>
21
22
typedef
struct
23
{
24
u8
opcode
;
/* 1 = request, 2 = reply */
25
u8
hardware_type
;
/* 1 = ethernet */
26
u8
hardware_address_length
;
27
u8
hops
;
28
u32
transaction_identifier
;
29
u16
seconds
;
30
u16
flags
;
31
#define DHCP_FLAG_BROADCAST (1<<15)
32
ip4_address_t
client_ip_address
;
33
ip4_address_t
your_ip_address
;
/* use this one */
34
ip4_address_t
server_ip_address
;
35
ip4_address_t
gateway_ip_address
;
/* use option 3, not this one */
36
u8
client_hardware_address[16];
37
u8
server_name[64];
38
u8
boot_filename[128];
39
ip4_address_t
magic_cookie
;
40
u8
options[0];
41
}
dhcp_header_t
;
42
43
typedef
struct
44
{
45
u8
option
;
46
u8
length
;
47
union
48
{
49
u8
data[0];
50
u32
data_as_u32[0];
51
};
52
} __attribute__ ((packed))
dhcp_option_t
;
53
54
typedef enum
55
{
56
DHCP_PACKET_DISCOVER
= 1,
57
DHCP_PACKET_OFFER
,
58
DHCP_PACKET_REQUEST
,
59
DHCP_PACKET_ACK
= 5,
60
DHCP_PACKET_NAK
,
61
}
dhcp_packet_type_t
;
62
63
typedef
enum
dhcp_packet_option_t_
64
{
65
DHCP_PACKET_OPTION_MSG_TYPE
= 53,
66
}
dhcp_packet_option_t
;
67
68
/* charming antique: 99.130.83.99 is the dhcp magic cookie */
69
#define DHCP_MAGIC (clib_host_to_net_u32(0x63825363))
70
71
#endif
/* included_vnet_dhcp4_packet_h */
72
73
/*
74
* fd.io coding-style-patch-verification: ON
75
*
76
* Local Variables:
77
* eval: (c-set-style "gnu")
78
* End:
79
*/
dhcp_header_t::opcode
u8 opcode
Definition:
dhcp4_packet.h:24
dhcp_option_t::length
u8 length
Definition:
dhcp4_packet.h:46
dhcp_option_t::option
u8 option
Definition:
dhcp4_packet.h:45
dhcp_header_t::seconds
u16 seconds
Definition:
dhcp4_packet.h:29
dhcp_header_t
Definition:
dhcp4_packet.h:22
DHCP_PACKET_OFFER
Definition:
dhcp4_packet.h:57
DHCP_PACKET_DISCOVER
Definition:
dhcp4_packet.h:56
dhcp_header_t::server_ip_address
ip4_address_t server_ip_address
Definition:
dhcp4_packet.h:34
u8
unsigned char u8
Definition:
types.h:56
DHCP_PACKET_NAK
Definition:
dhcp4_packet.h:60
dhcp_packet_option_t
enum dhcp_packet_option_t_ dhcp_packet_option_t
u32
unsigned int u32
Definition:
types.h:88
ip4_address_t
Definition:
ip4_packet.h:49
DHCP_PACKET_OPTION_MSG_TYPE
Definition:
dhcp4_packet.h:65
ip4_packet.h
u16
unsigned short u16
Definition:
types.h:57
dhcp_header_t::hops
u8 hops
Definition:
dhcp4_packet.h:27
DHCP_PACKET_REQUEST
Definition:
dhcp4_packet.h:58
dhcp_header_t::client_ip_address
ip4_address_t client_ip_address
Definition:
dhcp4_packet.h:32
dhcp_header_t::flags
u16 flags
Definition:
dhcp4_packet.h:30
dhcp_header_t::gateway_ip_address
ip4_address_t gateway_ip_address
Definition:
dhcp4_packet.h:35
dhcp_header_t::transaction_identifier
u32 transaction_identifier
Definition:
dhcp4_packet.h:28
dhcp_header_t::hardware_address_length
u8 hardware_address_length
Definition:
dhcp4_packet.h:26
dhcp_header_t::magic_cookie
ip4_address_t magic_cookie
Definition:
dhcp4_packet.h:39
dhcp_option_t
Definition:
dhcp4_packet.h:43
dhcp_packet_option_t_
dhcp_packet_option_t_
Definition:
dhcp4_packet.h:63
DHCP_PACKET_ACK
Definition:
dhcp4_packet.h:59
dhcp_packet_type_t
dhcp_packet_type_t
Definition:
dhcp4_packet.h:54
dhcp_header_t::hardware_type
u8 hardware_type
Definition:
dhcp4_packet.h:25
dhcp_header_t::your_ip_address
ip4_address_t your_ip_address
Definition:
dhcp4_packet.h:33
src
vnet
dhcp
dhcp4_packet.h
Generated on Tue Aug 21 2018 06:02:37 for FD.io VPP by
1.8.11