35 MSG_LEASEQUERY_REPLY = 15,
36 MSG_LEASEQUERY_DONE = 16,
37 MSG_LEASEQUERY_DATA = 17,
38 MSG_RECONFIGURE_REQUEST = 18,
39 MSG_RECONFIGURE_REPLY = 19,
40 MSG_DHCPV4_QUERY = 20,
41 MSG_DHCPV4_RESPONSE = 21,
42 MSG_FORCE_16BIT = 0xFFFF
60 OPT_RAPID_COMMIT = 14,
62 OPT_VENDOR_CLASS = 16,
66 OPT_RECONF_ACCEPT = 20,
67 OPT_SIP_SERVER_D = 21,
68 OPT_SIP_SERVER_A = 22,
74 OPT_NISP_SERVERS = 28,
75 OPT_NIS_DOMAIN_NAME = 29,
76 OPT_NISP_DOMAIN_NAME = 30,
77 OPT_SNTP_SERVERS = 31,
78 OPT_INFORMATION_REFRESH_TIME = 32,
79 OPT_BCMCS_SERVER_D = 33,
80 OPT_BCMCS_SERVER_A = 34,
81 OPT_GEOCONF_CIVIC = 36,
83 OPT_SUBSCRIBER_ID = 38,
86 OPT_NEW_POSIX_TIMEZONE = 41,
87 OPT_NEW_TZDB_TIMEZONE = 42,
92 OPT_LQ_RELAY_DATA = 47,
93 OPT_LQ_CLIENT_LINK = 48,
97 OPT_CAPWAP_AC_V6 = 52,
99 OPT_IPv6_Address_MoS = 54,
100 OPT_IPv6_FQDN_MoS = 55,
102 OPT_V6_ACCESS_DOMAIN = 57,
103 OPT_SIP_UA_CS_LIST = 58,
104 OPT_BOOTFILE_URL = 59,
105 OPT_BOOTFILE_PARAM = 60,
106 OPT_CLIENT_ARCH_TYPE = 61,
108 OPT_GEOLOCATION = 63,
110 OPT_ERP_LOCAL_DOMAIN_NAME = 65,
119 OPT_RDNSS_SELECTION = 74,
120 OPT_KRB_PRINCIPAL_NAME = 75,
121 OPT_KRB_REALM_NAME = 76,
122 OPT_KRB_DEFAULT_REALM_NAME = 77,
124 OPT_CLIENT_LINKLAYER_ADDR = 79,
125 OPT_LINK_ADDRESS = 80,
130 OPT_ADDRSEL_TABLE = 85,
131 OPT_V6_PCP_SERVER = 86,
133 OPT_DHCP4_O_DHCP6_SERVER = 88,
137 OPT_S46_V4V6BIND = 92,
138 OPT_S46_PORTPARAMS = 93,
139 OPT_S46_CONT_MAPE = 94,
140 OPT_S46_CONT_MAPT = 95,
141 OPT_S46_CONT_LW = 96,
143 OPT_4RD_MAP_RULE = 98,
144 OPT_4RD_NON_MAP_RULE = 99,
145 OPT_LQ_BASE_TIME = 100,
146 OPT_LQ_START_TIME = 101,
147 OPT_LQ_END_TIME = 102,
148 OPT_FORCE_16BIT = 0xFFFF
154 STATUS_UNSPEC_FAIL = 1,
155 STATUS_NO_ADDRS_AVAIL = 2,
156 STATUS_NO_BINDING = 3,
157 STATUS_NOT_ON_LINK = 4,
158 STATUS_USE_MULTICAST = 5,
159 STATUS_NO_PREFIX_AVAIL = 6,
160 STATUS_UNKNOWN_QUERY_TYPE = 7,
161 STATUS_MALFORMED_QUERY = 8,
162 STATUS_NOT_CONFIGURED = 9,
163 STATUS_NOT_ALLOWED = 10,
164 STATUS_QUERY_TERMINATED = 11,
165 STATUS_FORCE_16_BIT = 0xFFFF
173 inline Option *GetNext() {
return (
Option *)(((uint8_t *)
this) + len +
sizeof(
Option)); }
174 } __attribute__((packed));
181 DUID_TYPE_FORCE_16BIT = 0xFFFF
187 } __attribute__((packed));
189 struct DUID_LLT :
public DUID
191 beuint16_t hardwareType;
194 } __attribute__((packed));
196 struct DUID_EN :
public DUID
198 beuint32_t enterpriseNum;
200 } __attribute__((packed));
202 struct DUID_LL :
public DUID
204 beuint16_t hardwareType;
206 } __attribute__((packed));
211 beuint32_t typeAndXid;
215 } __attribute__((packed));
219 struct BaseOption :
public Option 222 } __attribute__((packed));
224 struct ClientServerID :
public Option 227 } __attribute__((packed));
229 struct IA_NA :
public Option 237 } __attribute__((packed));
239 struct IA_TA :
public Option 245 } __attribute__((packed));
247 struct IA_ADDR :
public Option 250 beuint32_t preferred;
254 inline IA_ADDR(
IPADDR6 ip, uint32_t pref = 0, uint32_t val = 0) : addr(ip), preferred(pref), valid(val)
257 len =
sizeof(IA_ADDR) -
sizeof(
Option);
260 inline bool ServerIsInvalidating() {
return (preferred == 0) && (valid == 0); }
263 } __attribute__((packed));
265 struct ORO :
public Option 267 beuint16_t ReqOptCode[];
268 } __attribute__((packed));
270 struct Pref :
public Option 273 } __attribute__((packed));
275 struct ElapsedTime :
public Option 278 } __attribute__((packed));
280 struct RelayMsg :
public Option 283 } __attribute__((packed));
285 struct Auth :
public Option 292 } __attribute__((packed));
294 struct Unicast :
public Option 297 } __attribute__((packed));
299 struct StatusMsg :
public Option 301 beuint16_t statusCode;
303 } __attribute__((packed));
305 struct RapidCommit :
public Option 308 } __attribute__((packed));
310 struct UserClass :
public Option 316 } __attribute__((packed));
318 } __attribute__((packed));
320 struct VendorClass :
public Option 326 } __attribute__((packed));
327 beuint32_t enterpriseNum;
329 } __attribute__((packed));
331 struct VendorOpts :
public Option 333 beuint32_t enterpriseNum;
335 } __attribute__((packed));
337 struct InterfaceID :
public Option 339 uint8_t interfaceID[];
340 } __attribute__((packed));
342 struct ReconfMsg :
public Option 345 } __attribute__((packed));
347 struct ReconfAccept :
public Option 350 } __attribute__((packed));
352 struct DNS_Servers :
public Option 355 } __attribute__((packed));
357 struct DomainList :
public Option 359 uint8_t searchList[];
360 } __attribute__((packed));
362 struct InfoRefreshTime :
public Option 364 beuint32_t refreshTime;
368 struct FQDN :
public Option 379 void ShowOption(
int lvl,
Option *opt);
Used to hold and manipulate IPv4 and IPv6 addresses in dual stack mode.
Definition: ipv6_addr.h:28
Definition: dhcpv6_internal.h:34
#define NULL
Definition: nm_bsp.h:76
Option.
Definition: nbWifiConstants.h:348