6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/*
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * CDDL HEADER START
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * The contents of this file are subject to the terms of the
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * Common Development and Distribution License (the "License").
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * You may not use this file except in compliance with the License.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * or http://www.opensolaris.org/os/licensing.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * See the License for the specific language governing permissions
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * and limitations under the License.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * When distributing Covered Code, include this CDDL HEADER in each
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * If applicable, add the following below this CDDL HEADER, with the
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * fields enclosed by brackets "[]" replaced with your own identifying
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * information: Portions Copyright [yyyy] [name of copyright owner]
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * CDDL HEADER END
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/*
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * Use is subject to license terms.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#ifndef _NWAMCFG_H
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define _NWAMCFG_H
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/*
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * header file for nwamcfg command
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#ifdef __cplusplus
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern "C" {
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#endif
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NWAM_OK 0
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NWAM_ERR 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NWAM_REPEAT 2
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/* max length of "ncu", "ncp", "loc", "enm", "wlan" */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NWAM_MAX_TYPE_LEN 5
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_CANCEL 0
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_CLEAR 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_COMMIT 2
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_CREATE 3
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_DESTROY 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_END 5
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_EXIT 6
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_EXPORT 7
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_GET 8
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_HELP 9
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_LIST 10
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_REVERT 11
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_SELECT 12
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_SET 13
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_VERIFY 14
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_WALKPROP 15
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_MIN CMD_CANCEL
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define CMD_MAX CMD_WALKPROP
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/* one-level resource types */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_UNKNOWN 0
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_LOC 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_NCP 2
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_ENM 3
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_WLAN 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_MIN RT1_UNKNOWN
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT1_MAX RT1_WLAN
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/* two-level resource types */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT2_UNKNOWN 0
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT2_NCU 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT2_MIN RT2_UNKNOWN
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define RT2_MAX RT2_NCU
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/* class types for NCU's */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NCU_CLASS_PHYS 0
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NCU_CLASS_IP 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NCU_CLASS_ANY 2
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NCU_CLASS_MIN NCU_CLASS_PHYS
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define NCU_CLASS_MAX NCU_CLASS_ANY
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/* property types, matches NWAM_*_PROP_* from libnwam.h */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_UNKNOWN 0
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_ACTIVATION_MODE 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_ENABLED 2
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_TYPE 3
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_CLASS 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_PARENT 5
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_PRIORITY_GROUP 6
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_PRIORITY_MODE 7
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LINK_MACADDR 8
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LINK_AUTOPUSH 9
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LINK_MTU 10
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IP_VERSION 11
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IPV4_ADDRSRC 12
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IPV4_ADDR 13
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IPV4_DEFAULT_ROUTE 14
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IPV6_ADDRSRC 15
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IPV6_ADDR 16
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_IPV6_DEFAULT_ROUTE 17
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_CONDITIONS 18
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_ENM_FMRI 19
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_ENM_START 20
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_ENM_STOP 21
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_NAMESERVICES 22
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_NAMESERVICES_CONFIG 23
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_DNS_CONFIGSRC 24
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_DNS_DOMAIN 25
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_DNS_SERVERS 26
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_DNS_SEARCH 27
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_NIS_CONFIGSRC 28
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_NIS_SERVERS 29
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_LDAP_CONFIGSRC 30
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_LDAP_SERVERS 31
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_DEFAULT_DOMAIN 32
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_NFSV4_DOMAIN 33
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_IPF_CONFIG 34
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_IPF_V6_CONFIG 35
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_IPNAT_CONFIG 36
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_IPPOOL_CONFIG 37
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_IKE_CONFIG 38
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_LOC_IPSECPOL_CONFIG 39
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_WLAN_BSSIDS 40
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_WLAN_PRIORITY 41
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_WLAN_KEYNAME 42
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_WLAN_KEYSLOT 43
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_WLAN_SECURITY_MODE 44
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/*
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * If any new PT_ are defined here, make sure it is added in the same
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * order into the pt_types array in nwamcfg.c
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_MIN PT_UNKNOWN
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define PT_MAX PT_WLAN_SECURITY_MODE
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#define MAX_SUBCMD_ARGS 3
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeytypedef struct cmd {
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey int cmd_num;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey void (*cmd_handler)(struct cmd *);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey int cmd_res1_type;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey int cmd_res2_type;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey int cmd_prop_type;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey int cmd_ncu_class_type;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey int cmd_argc;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey char *cmd_argv[MAX_SUBCMD_ARGS + 1];
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey} cmd_t;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/* Fuctions for each command */
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeytypedef void (cmd_func_t)(cmd_t *);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern cmd_func_t cancel_func, clear_func, commit_func, create_func;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern cmd_func_t destroy_func, end_func, exit_func, export_func, get_func;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern cmd_func_t help_func, list_func, revert_func, select_func, set_func;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern cmd_func_t verify_func, walkprop_func;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern cmd_t *alloc_cmd(void);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern void free_cmd(cmd_t *cmd);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern boolean_t check_scope(int);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern const char *cmd_to_str(int);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern void nerr(const char *, ...);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern void properr(const char *);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern boolean_t saw_error;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyextern FILE *yyin;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#ifdef __cplusplus
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey}
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#endif
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey#endif /* _NWAMCFG_H */