2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 2N/A * dhcpagent_ipc.[ch] comprise the interface used to perform 2N/A * documentation on how to use the exported functions. 2N/A * Solaris 10 Branded Zones also use this, so it cannot be changed to 2N/A * return values which should be used by programs which talk to the 2N/A * agent (for uniformity). 2N/A * opaque types for requests and replies. users of this api do not 2N/A * need to understand their contents. 2N/A/* payloads that can be passed in a request or reply */ 2N/A * requests that can be sent to the agent 2N/A * code in dhcpagent relies on the numeric values of these 2N/A * requests -- but there's no sane reason to change them anyway. 2N/A * If any commands are changed, added, or removed, see the ipc_typestr[] 2N/A/* structure passed with the DHCP_GET_TAG request */ 2N/A/* special timeout values for dhcp_ipc_make_request() */ 2N/A * errors that can be returned from the provided functions. 2N/A * note: keep in sync with dhcp_ipc_strerror() 2N/A /* System call errors must be kept contiguous */ 2N/A /* All others follow */ 2N/A * low-level public dhcpagent ipc functions -- these are for use by 2N/A * programs that need to communicate with the dhcpagent. these will 2N/A * remain relatively stable. 2N/A * high-level public dhcpagent ipc functions 2N/A * private dhcpagent ipc "server side" functions -- these are only for 2N/A * use by dhcpagent(1M) and are subject to change. 2N/A * values for if_state in the dhcp_status_t 2N/A * code in this library and dhcpagent rely on the numeric values of these 2N/A * requests -- but there's no sane reason to change them anyway. 2N/A/* values for if_dflags in the dhcp_status_t */ 2N/A * structure passed with the DHCP_STATUS replies 2N/A * when parsing a dhcp_status_t, `version' should always be checked 2N/A * if there is a need to access any fields which were not defined in 2N/A * version 1 of this structure. 2N/A * as new fields are added to the dhcp_status_t, they should be 2N/A * appended to the structure and the version number incremented. 2N/A * these three fields are initially zero, and get incremented 2N/A * as if_state goes from INIT -> BOUND (or INIT -> 2N/A * INFORMATION). if and when the interface moves to the 2N/A * RENEWING state, these fields are reset, so they always 2N/A * either indicate the number of packets sent, received, and 2N/A * declined while obtaining the current lease (if BOUND), or 2N/A * the number of packets sent, received, and declined while 2N/A * attempting to obtain a future lease (if any other state). 2N/A * if_cid contains the client identifier, either obtained 2N/A * from the config file or generated by the dhcpagent. 2N/A * if_cidlen contains the length of if_cid. 2N/A * the remainder of this file contains implementation-specific 2N/A * artifacts which may change. note that a `dhcp_ipc_request_t' and a 2N/A * `dhcp_ipc_reply_t' are incomplete types as far as consumers of this 2N/A * api are concerned. use these details at your own risk. 2N/A * note: the first 4 fields of the dhcp_ipc_request_t and dhcp_ipc_reply_t 2N/A * since ansi c won't let us define arrays with 0 elements, the 2N/A#
endif /* _DHCPAGENT_IPC_H */