6198 Let's EOL cachefs
[illumos-gate.git] / usr / src / uts / common / sys / bootprops.h
blobd3eec9d2fd3c72c4830f8b2771f324bec140b048
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _BOOTPROPS_H
27 #define _BOOTPROPS_H
29 #include <sys/types.h>
30 #include <netinet/in.h>
31 #include <sys/t_kuser.h>
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
38 * Boot properties related to netboot:
40 #define BP_HOST_IP "host-ip"
41 #define BP_SUBNET_MASK "subnet-mask"
42 #define BP_ROUTER_IP "router-ip"
43 #define BP_BOOT_MAC "boot-mac"
44 #define BP_SERVER_IP "server-ip"
45 #define BP_SERVER_NAME "server-name"
46 #define BP_SERVER_PATH "server-path"
47 #define BP_SERVER_ROOTOPTS "server-rootopts"
48 #define BP_BOOTP_RESPONSE "bootp-response"
51 * Boot properties related to iscsiboot:
53 #define BP_NETWORK_INTERFACE "network-interface"
54 #define BP_ISCSI_TARGET_NAME "iscsi-target-name"
55 #define BP_ISCSI_TARGET_IP "iscsi-target-ip"
56 #define BP_ISCSI_INITIATOR_ID "iscsi-initiator-id"
57 #define BP_ISCSI_PORT "iscsi-port"
58 #define BP_ISCSI_TPGT "iscsi-tpgt"
59 #define BP_ISCSI_LUN "iscsi-lun"
60 #define BP_ISCSI_PAR "iscsi-partition"
61 #define BP_ISCSI_NETWORK_BOOTPATH "iscsi-network-bootpath"
62 #define BP_ISCSI_DISK "/iscsi-hba/disk"
63 #define BP_BOOTPATH "bootpath"
64 #define BP_CHAP_USER "chap-user"
65 #define BP_CHAP_PASSWORD "chap-password"
66 #define BP_LOCAL_MAC_ADDRESS "local-mac-address"
69 * kifconf prototypes
71 int
72 kdlifconfig(TIUSER *tiptr, int af, void *myIPaddr, void *mymask,
73 struct in_addr *mybraddr, struct in_addr *gateway, char *ifname);
74 int
75 ksetifflags(TIUSER *tiptr, uint_t value, char *ifname);
76 int
77 kifioctl(TIUSER *tiptr, int cmd, struct netbuf *nbuf, char *ifname);
80 * Boot properties related to iscsi boot:
82 #define IB_BOOT_MACLEN 6
83 #define IB_IP_BUFLEN 16
86 * iSCSI boot initiator's properties
88 typedef struct _ib_ini_prop {
89 uchar_t *ini_name;
90 size_t ini_name_len;
91 uchar_t *ini_chap_name;
92 size_t ini_chap_name_len;
93 uchar_t *ini_chap_sec;
94 size_t ini_chap_sec_len;
95 } ib_ini_prop_t;
98 * iSCSI boot nic's properties
100 typedef struct _ib_nic_prop {
101 uchar_t nic_mac[6];
102 uchar_t nic_vlan[2];
103 union {
104 struct in_addr u_in4;
105 struct in6_addr u_in6;
106 } nic_ip_u;
107 union {
108 struct in_addr u_in4;
109 struct in6_addr u_in6;
110 } nic_gw_u;
111 union {
112 struct in_addr u_in4;
113 struct in6_addr u_in6;
114 } nic_dhcp_u;
115 int sin_family;
116 uchar_t sub_mask_prefix;
118 } ib_nic_prop_t;
121 * iSCSI boot target's properties
123 typedef struct _ib_tgt_prop {
124 union {
125 struct in_addr u_in4;
126 struct in6_addr u_in6;
127 }tgt_ip_u;
128 int sin_family;
129 uint32_t tgt_port;
130 uchar_t tgt_boot_lun[8];
131 uchar_t *tgt_name;
132 size_t tgt_name_len;
133 uchar_t *tgt_chap_name;
134 size_t tgt_chap_name_len;
135 uchar_t *tgt_chap_sec;
136 size_t tgt_chap_sec_len;
137 int lun_online;
138 uchar_t *tgt_boot_par;
139 size_t tgt_boot_par_len;
140 uint16_t tgt_tpgt;
141 } ib_tgt_prop_t;
144 * iSCSI boot properties
146 typedef struct _ib_boot_prop {
147 ib_ini_prop_t boot_init;
148 ib_nic_prop_t boot_nic;
149 ib_tgt_prop_t boot_tgt;
150 } ib_boot_prop_t;
152 void
153 ld_ib_prop();
155 void
156 iscsi_boot_prop_free();
158 void
159 get_iscsi_bootpath_vhci(char *bootpath);
161 void
162 get_iscsi_bootpath_phy(char *bootpath);
164 #ifdef __cplusplus
166 #endif
168 #endif /* _BOOTPROPS_H */