1 /* 2 * CDDL HEADER START 3 * 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. 7 * 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. 12 * 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] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26 #ifndef _BOOTPROPS_H 27 #define _BOOTPROPS_H 28 29 #include <sys/types.h> 30 #include <netinet/in.h> 31 #include <sys/t_kuser.h> 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif 36 37 /* 38 * Boot properties related to netboot: 39 */ 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" 49 #define BP_NETWORK_INTERFACE "network-interface" 50 51 /* 52 * kifconf prototypes 53 */ 54 int 55 kdlifconfig(TIUSER *tiptr, int af, void *myIPaddr, void *mymask, 56 struct in_addr *mybraddr, struct in_addr *gateway, char *ifname); 57 int 58 ksetifflags(TIUSER *tiptr, uint_t value, char *ifname); 59 int 60 kifioctl(TIUSER *tiptr, int cmd, struct netbuf *nbuf, char *ifname); 61 62 /* 63 * Boot properties related to iscsi boot: 64 */ 65 #define IB_BOOT_MACLEN 6 66 #define IB_IP_BUFLEN 16 67 68 /* 69 * iSCSI boot initiator's properties 70 */ 71 typedef struct _ib_ini_prop { 72 uchar_t *ini_name; 73 uchar_t *ini_chap_name; 74 uchar_t *ini_chap_sec; 75 } ib_ini_prop_t; 76 77 /* 78 * iSCSI boot nic's properties 79 */ 80 typedef struct _ib_nic_prop { 81 uchar_t nic_mac[6]; 82 uchar_t nic_vlan[2]; 83 union { 84 struct in_addr u_in4; 85 struct in6_addr u_in6; 86 } nic_ip_u; 87 union { 88 struct in_addr u_in4; 89 struct in6_addr u_in6; 90 } nic_gw_u; 91 union { 92 struct in_addr u_in4; 93 struct in6_addr u_in6; 94 } nic_dhcp_u; 95 int sin_family; 96 uchar_t sub_mask_prefix; 97 98 } ib_nic_prop_t; 99 100 /* 101 * iSCSI boot target's properties 102 */ 103 typedef struct _ib_tgt_prop { 104 union { 105 struct in_addr u_in4; 106 struct in6_addr u_in6; 107 }tgt_ip_u; 108 int sin_family; 109 uint32_t tgt_port; 110 uchar_t tgt_boot_lun[8]; 111 uchar_t *tgt_name; 112 uchar_t *tgt_chap_name; 113 uchar_t *tgt_chap_sec; 114 int lun_online; 115 } ib_tgt_prop_t; 116 117 /* 118 * iSCSI boot properties 119 */ 120 typedef struct _ib_boot_prop { 121 ib_ini_prop_t boot_init; 122 ib_nic_prop_t boot_nic; 123 ib_tgt_prop_t boot_tgt; 124 } ib_boot_prop_t; 125 126 void 127 ld_ib_prop(); 128 129 #ifdef __cplusplus 130 } 131 #endif 132 133 #endif /* _BOOTPROPS_H */ 134