nwamcfg_grammar.y revision 6ba597c56d749c61b4f783157f63196d7b2445f0
%{
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#include <stdio.h>
#include <sys/types.h>
#include "nwamcfg.h"
static cmd_t *cmd = NULL; /* Command being processed */
/* yacc externals */
extern int yydebug;
extern void yyerror(char *s);
extern boolean_t newline_terminated;
%}
%union {
int ival;
char *strval;
cmd_t *cmd;
}
%start commands
%token CANCEL CLEAR COMMIT CREATE DESTROY END EXIT EXPORT GET HELP
%token LIST REVERT SELECT SET VERIFY WALKPROP
%token LOC NCP NCU ENM WLAN
%token PHYS IP
%token TOKEN EQUAL OPTION
%token UNKNOWN ACTIVATION_MODE CONDITIONS ENABLED
%token TYPE CLASS PARENT PRIORITY_GROUP PRIORITY_MODE
%token LINK_MACADDR LINK_AUTOPUSH LINK_MTU
%token IP_VERSION IPV4_ADDRSRC IPV4_ADDR IPV4_DEFAULT_ROUTE
%token IPV6_ADDRSRC IPV6_ADDR IPV6_DEFAULT_ROUTE
%token ENM_STATE ENM_FMRI ENM_START ENM_STOP
%token LOC_NAMESERVICES LOC_NAMESERVICES_CONFIG
%token LOC_DNS_CONFIGSRC LOC_DNS_DOMAIN LOC_DNS_SERVERS LOC_DNS_SEARCH
%token LOC_NIS_CONFIGSRC LOC_NIS_SERVERS
%token LOC_LDAP_CONFIGSRC LOC_LDAP_SERVERS
%token LOC_DEFAULT_DOMAIN LOC_NFSV4_DOMAIN
%token LOC_IPF_CONFIG LOC_IPF_V6_CONFIG
%token LOC_IPNAT_CONFIG LOC_IPPOOL_CONFIG LOC_IKE_CONFIG LOC_IPSECPOL_CONFIG
%token WLAN_BSSIDS WLAN_PRIORITY WLAN_KEYNAME WLAN_KEYSLOT WLAN_SECURITY_MODE
%type <strval> TOKEN EQUAL OPTION
%type <ival> resource1_type LOC NCP ENM WLAN
%type <ival> resource2_type NCU
%type <ival> ncu_class_type PHYS IP
%type <ival> property_type UNKNOWN ACTIVATION_MODE CONDITIONS ENABLED
TYPE CLASS PARENT PRIORITY_GROUP PRIORITY_MODE
LINK_MACADDR LINK_AUTOPUSH LINK_MTU
IP_VERSION IPV4_ADDRSRC IPV4_ADDR IPV4_DEFAULT_ROUTE
IPV6_ADDRSRC IPV6_ADDR IPV6_DEFAULT_ROUTE
ENM_STATE ENM_FMRI ENM_START ENM_STOP
LOC_NAMESERVICES LOC_NAMESERVICES_CONFIG
LOC_DNS_CONFIGSRC LOC_DNS_DOMAIN LOC_DNS_SERVERS LOC_DNS_SEARCH
LOC_NIS_CONFIGSRC LOC_NIS_SERVERS
LOC_LDAP_CONFIGSRC LOC_LDAP_SERVERS
LOC_DEFAULT_DOMAIN LOC_NFSV4_DOMAIN
LOC_IPF_CONFIG LOC_IPF_V6_CONFIG
LOC_IPNAT_CONFIG LOC_IPPOOL_CONFIG LOC_IKE_CONFIG LOC_IPSECPOL_CONFIG
WLAN_BSSIDS WLAN_PRIORITY WLAN_KEYNAME WLAN_KEYSLOT WLAN_SECURITY_MODE
%type <cmd> command
%type <cmd> cancel_command CANCEL
%type <cmd> clear_command CLEAR
%type <cmd> commit_command COMMIT
%type <cmd> create_command CREATE
%type <cmd> destroy_command DESTROY
%type <cmd> end_command END
%type <cmd> exit_command EXIT
%type <cmd> export_command EXPORT
%type <cmd> get_command GET
%type <cmd> help_command HELP
%type <cmd> list_command LIST
%type <cmd> revert_command REVERT
%type <cmd> select_command SELECT
%type <cmd> set_command SET
%type <cmd> verify_command VERIFY
%type <cmd> walkprop_command WALKPROP
%type <cmd> terminator
%%
commands: command terminator
{
if ($1 != NULL) {
if ($1->cmd_handler != NULL)
if (check_scope($1->cmd_num))
$1->cmd_handler($1);
free_cmd($1);
}
return (0);
}
| command error terminator
{
if ($1 != NULL)
free_cmd($1);
if (YYRECOVERING())
YYABORT;
yyclearin;
yyerrok;
}
| error terminator
{
if (YYRECOVERING())
YYABORT;
yyclearin;
yyerrok;
}
| terminator
{
return (0);
}
command: cancel_command
| clear_command
| commit_command
| create_command
| destroy_command
| end_command
| exit_command
| export_command
| get_command
| help_command
| list_command
| revert_command
| select_command
| set_command
| verify_command
| walkprop_command
terminator: '\n' { newline_terminated = B_TRUE; }
| ';' { newline_terminated = B_FALSE; }
cancel_command: CANCEL
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_CANCEL;
$$->cmd_handler = &cancel_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
clear_command: CLEAR
{
command_usage(CMD_CLEAR);
YYERROR;
}
| CLEAR TOKEN
{
properr($2);
YYERROR;
}
| CLEAR property_type
{
/* clear prop */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_CLEAR;
$$->cmd_handler = &clear_func;
$$->cmd_prop_type = $2;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
commit_command: COMMIT
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_COMMIT;
$$->cmd_handler = &commit_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
create_command: CREATE
{
command_usage(CMD_CREATE);
YYERROR;
}
| CREATE TOKEN
{
command_usage(CMD_CREATE);
YYERROR;
}
| CREATE resource1_type
{
command_usage(CMD_CREATE);
YYERROR;
}
| CREATE resource2_type
{
command_usage(CMD_CREATE);
YYERROR;
}
| CREATE resource1_type TOKEN
{
/* create enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_CREATE;
$$->cmd_handler = &create_func;
$$->cmd_res1_type = $2;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| CREATE resource2_type ncu_class_type TOKEN
{
/* create ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_CREATE;
$$->cmd_handler = &create_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = $3;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = NULL;
}
| CREATE OPTION TOKEN resource1_type TOKEN
{
/* create -t old enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_CREATE;
$$->cmd_handler = &create_func;
$$->cmd_res1_type = $4;
$$->cmd_argc = 3;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = $5;
$$->cmd_argv[3] = NULL;
}
| CREATE OPTION TOKEN resource2_type ncu_class_type TOKEN
{
/* create -t old ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_CREATE;
$$->cmd_handler = &create_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $4;
$$->cmd_ncu_class_type = $5;
$$->cmd_argc = 3;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = $6;
$$->cmd_argv[3] = NULL;
}
destroy_command: DESTROY
{
command_usage(CMD_DESTROY);
YYERROR;
}
| DESTROY OPTION
{
/* destroy -a */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_DESTROY;
$$->cmd_handler = &destroy_func;
$$->cmd_res1_type = -1; /* special value */
$$->cmd_argc = 1;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = NULL;
}
| DESTROY resource1_type
{
command_usage(CMD_DESTROY);
YYERROR;
}
| DESTROY resource2_type
{
command_usage(CMD_DESTROY);
YYERROR;
}
| DESTROY resource1_type TOKEN
{
/* destroy enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_DESTROY;
$$->cmd_handler = &destroy_func;
$$->cmd_res1_type = $2;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| DESTROY resource2_type TOKEN
{
/* destroy ncu test (class inferred) */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_DESTROY;
$$->cmd_handler = &destroy_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = NCU_CLASS_ANY;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| DESTROY resource2_type ncu_class_type TOKEN
{
/* destroy ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_DESTROY;
$$->cmd_handler = &destroy_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = $3;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = NULL;
}
end_command: END
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_END;
$$->cmd_handler = &end_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
exit_command: EXIT
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXIT;
$$->cmd_handler = &exit_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
export_command: EXPORT
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
| EXPORT TOKEN
{
command_usage(CMD_EXPORT);
YYERROR;
}
| EXPORT OPTION
{
/* export -d */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = NULL;
}
| EXPORT OPTION TOKEN
{
/* export -f file */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_argc = 2;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = NULL;
}
| EXPORT OPTION OPTION TOKEN
{
/* export -d -f file */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_argc = 3;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = $4;
$$->cmd_argv[3] = NULL;
}
| EXPORT resource1_type TOKEN
{
/* export enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_res1_type = $2;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| EXPORT resource2_type TOKEN
{
/* export ncu test (all ncu's named test) */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = NCU_CLASS_ANY;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| EXPORT resource2_type ncu_class_type TOKEN
{
/* export ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = $3;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = NULL;
}
| EXPORT OPTION TOKEN resource1_type TOKEN
{
/* export -f file enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_res1_type = $4;
$$->cmd_argc = 3;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = $5;
$$->cmd_argv[3] = NULL;
}
| EXPORT OPTION TOKEN resource2_type TOKEN
{
/* export -f file ncu test (all ncu's named test) */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $4;
$$->cmd_ncu_class_type = NCU_CLASS_ANY;
$$->cmd_argc = 3;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = $5;
$$->cmd_argv[3] = NULL;
}
| EXPORT OPTION TOKEN resource2_type ncu_class_type TOKEN
{
/* export -f file ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_EXPORT;
$$->cmd_handler = &export_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $4;
$$->cmd_ncu_class_type = $5;
$$->cmd_argc = 3;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = $3;
$$->cmd_argv[2] = $6;
$$->cmd_argv[3] = NULL;
}
get_command: GET
{
command_usage(CMD_GET);
YYERROR;
}
| GET TOKEN
{
properr($2);
YYERROR;
}
| GET property_type
{
/* get prop */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_GET;
$$->cmd_handler = &get_func;
$$->cmd_prop_type = $2;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
| GET OPTION property_type
{
/* get -V prop */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_GET;
$$->cmd_handler = &get_func;
$$->cmd_prop_type = $3;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = NULL;
}
help_command: HELP
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_HELP;
$$->cmd_handler = &help_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
| HELP TOKEN
{
/* help command */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_HELP;
$$->cmd_handler = &help_func;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = NULL;
}
list_command: LIST
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
| LIST TOKEN
{
command_usage(CMD_LIST);
YYERROR;
}
| LIST OPTION
{
/* list -a */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = -1; /* special value */
$$->cmd_argc = 1;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = NULL;
}
| LIST resource1_type
{
command_usage(CMD_LIST);
YYERROR;
}
| LIST resource2_type
{
command_usage(CMD_LIST);
YYERROR;
}
| LIST resource1_type TOKEN
{
/* list enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = $2;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| LIST resource2_type TOKEN
{
/* list ncu test (all ncu's named test) */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = NCU_CLASS_ANY;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| LIST resource2_type ncu_class_type TOKEN
{
/* list ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = $3;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = NULL;
}
| LIST OPTION resource1_type TOKEN
{
/* list -a enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = $3;
$$->cmd_argc = 2;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = $2;
$$->cmd_argv[2] = NULL;
}
| LIST OPTION resource2_type TOKEN
{
/* list -a ncu test (all ncu's named test) */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $3;
$$->cmd_ncu_class_type = NCU_CLASS_ANY;
$$->cmd_argc = 2;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = $2;
$$->cmd_argv[2] = NULL;
}
| LIST OPTION resource2_type ncu_class_type TOKEN
{
/* list -a ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_LIST;
$$->cmd_handler = &list_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $3;
$$->cmd_ncu_class_type = $4;
$$->cmd_argc = 2;
$$->cmd_argv[0] = $5;
$$->cmd_argv[1] = $2;
$$->cmd_argv[2] = NULL;
}
revert_command: REVERT
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_REVERT;
$$->cmd_handler = &revert_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
select_command: SELECT
{
command_usage(CMD_SELECT);
YYERROR;
}
| SELECT TOKEN
{
command_usage(CMD_SELECT);
YYERROR;
}
| SELECT resource1_type
{
command_usage(CMD_SELECT);
YYERROR;
}
| SELECT resource2_type
{
command_usage(CMD_SELECT);
YYERROR;
}
| SELECT resource1_type TOKEN
{
/* select enm/loc/ncp test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_SELECT;
$$->cmd_handler = &select_func;
$$->cmd_res1_type = $2;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| SELECT resource2_type TOKEN
{
/* select ncu test (class inferred) */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_SELECT;
$$->cmd_handler = &select_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = NCU_CLASS_ANY;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $3;
$$->cmd_argv[1] = NULL;
}
| SELECT resource2_type ncu_class_type TOKEN
{
/* select ncu ip/phys test */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_SELECT;
$$->cmd_handler = &select_func;
$$->cmd_res1_type = RT1_NCP;
$$->cmd_res2_type = $2;
$$->cmd_ncu_class_type = $3;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = NULL;
}
set_command: SET
{
command_usage(CMD_SET);
YYERROR;
}
| SET TOKEN
{
properr($2);
YYERROR;
}
| SET property_type EQUAL TOKEN
{
/* set prop=value */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_SET;
$$->cmd_handler = &set_func;
$$->cmd_prop_type = $2;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $4;
$$->cmd_argv[1] = NULL;
}
verify_command: VERIFY
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_VERIFY;
$$->cmd_handler = &verify_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
walkprop_command: WALKPROP
{
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_WALKPROP;
$$->cmd_handler = &walkprop_func;
$$->cmd_argc = 0;
$$->cmd_argv[0] = NULL;
}
| WALKPROP OPTION
{
/* walkprop -a */
if (($$ = alloc_cmd()) == NULL)
YYERROR;
cmd = $$;
$$->cmd_num = CMD_WALKPROP;
$$->cmd_handler = &walkprop_func;
$$->cmd_argc = 1;
$$->cmd_argv[0] = $2;
$$->cmd_argv[1] = NULL;
}
resource1_type: LOC { $$ = RT1_LOC; }
| NCP { $$ = RT1_NCP; }
| ENM { $$ = RT1_ENM; }
| WLAN { $$ = RT1_WLAN; }
resource2_type: NCU { $$ = RT2_NCU; }
ncu_class_type: PHYS { $$ = NCU_CLASS_PHYS; }
| IP { $$ = NCU_CLASS_IP; }
property_type: UNKNOWN { $$ = PT_UNKNOWN; }
| ACTIVATION_MODE { $$ = PT_ACTIVATION_MODE; }
| CONDITIONS { $$ = PT_CONDITIONS; }
| ENABLED { $$ = PT_ENABLED; }
| TYPE { $$ = PT_TYPE; }
| CLASS { $$ = PT_CLASS; }
| PARENT { $$ = PT_PARENT; }
| PRIORITY_GROUP { $$ = PT_PRIORITY_GROUP; }
| PRIORITY_MODE { $$ = PT_PRIORITY_MODE; }
| LINK_MACADDR { $$ = PT_LINK_MACADDR; }
| LINK_AUTOPUSH { $$ = PT_LINK_AUTOPUSH; }
| LINK_MTU { $$ = PT_LINK_MTU; }
| IP_VERSION { $$ = PT_IP_VERSION; }
| IPV4_ADDRSRC { $$ = PT_IPV4_ADDRSRC; }
| IPV4_ADDR { $$ = PT_IPV4_ADDR; }
| IPV4_DEFAULT_ROUTE { $$ = PT_IPV4_DEFAULT_ROUTE; }
| IPV6_ADDRSRC { $$ = PT_IPV6_ADDRSRC; }
| IPV6_ADDR { $$ = PT_IPV6_ADDR; }
| IPV6_DEFAULT_ROUTE { $$ = PT_IPV6_DEFAULT_ROUTE; }
| ENM_FMRI { $$ = PT_ENM_FMRI; }
| ENM_START { $$ = PT_ENM_START; }
| ENM_STOP { $$ = PT_ENM_STOP; }
| LOC_NAMESERVICES { $$ = PT_LOC_NAMESERVICES; }
| LOC_NAMESERVICES_CONFIG { $$ = PT_LOC_NAMESERVICES_CONFIG; }
| LOC_DNS_CONFIGSRC { $$ = PT_LOC_DNS_CONFIGSRC; }
| LOC_DNS_DOMAIN { $$ = PT_LOC_DNS_DOMAIN; }
| LOC_DNS_SERVERS { $$ = PT_LOC_DNS_SERVERS; }
| LOC_DNS_SEARCH { $$ = PT_LOC_DNS_SEARCH; }
| LOC_NIS_CONFIGSRC { $$ = PT_LOC_NIS_CONFIGSRC; }
| LOC_NIS_SERVERS { $$ = PT_LOC_NIS_SERVERS; }
| LOC_LDAP_CONFIGSRC { $$ = PT_LOC_LDAP_CONFIGSRC; }
| LOC_LDAP_SERVERS { $$ = PT_LOC_LDAP_SERVERS; }
| LOC_DEFAULT_DOMAIN { $$ = PT_LOC_DEFAULT_DOMAIN; }
| LOC_NFSV4_DOMAIN { $$ = PT_LOC_NFSV4_DOMAIN; }
| LOC_IPF_CONFIG { $$ = PT_LOC_IPF_CONFIG; }
| LOC_IPF_V6_CONFIG { $$ = PT_LOC_IPF_V6_CONFIG; }
| LOC_IPNAT_CONFIG { $$ = PT_LOC_IPNAT_CONFIG; }
| LOC_IPPOOL_CONFIG { $$ = PT_LOC_IPPOOL_CONFIG; }
| LOC_IKE_CONFIG { $$ = PT_LOC_IKE_CONFIG; }
| LOC_IPSECPOL_CONFIG { $$ = PT_LOC_IPSECPOL_CONFIG; }
| WLAN_BSSIDS { $$ = PT_WLAN_BSSIDS; }
| WLAN_PRIORITY { $$ = PT_WLAN_PRIORITY; }
| WLAN_KEYNAME { $$ = PT_WLAN_KEYNAME; }
| WLAN_KEYSLOT { $$ = PT_WLAN_KEYSLOT; }
| WLAN_SECURITY_MODE { $$ = PT_WLAN_SECURITY_MODE; }
%%