dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / cmd / cmd-inet / usr.sbin / nwamcfg / nwamcfg_grammar.y
blobc40dc2c963ef63b562e13fe218180fbd098facf2
1 %{
2 /*
3 * CDDL HEADER START
5 * The contents of this file are subject to the terms of the
6 * Common Development and Distribution License (the "License").
7 * You may not use this file except in compliance with the License.
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
20 * CDDL HEADER END
24 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
25 * Use is subject to license terms.
28 #include <stdio.h>
29 #include <sys/types.h>
31 #include "nwamcfg.h"
33 static cmd_t *cmd = NULL; /* Command being processed */
35 /* yacc externals */
36 extern int yydebug;
37 extern void yyerror(char *s);
39 extern boolean_t newline_terminated;
43 %union {
44 int ival;
45 char *strval;
46 cmd_t *cmd;
49 %start commands
51 %token CANCEL CLEAR COMMIT CREATE DESTROY END EXIT EXPORT GET HELP
52 %token LIST REVERT SELECT SET VERIFY WALKPROP
53 %token LOC NCP NCU ENM WLAN
54 %token PHYS IP
55 %token TOKEN EQUAL OPTION
56 %token UNKNOWN ACTIVATION_MODE CONDITIONS ENABLED
57 %token TYPE CLASS PARENT PRIORITY_GROUP PRIORITY_MODE
58 %token LINK_MACADDR LINK_AUTOPUSH LINK_MTU
59 %token IP_VERSION IPV4_ADDRSRC IPV4_ADDR IPV4_DEFAULT_ROUTE
60 %token IPV6_ADDRSRC IPV6_ADDR IPV6_DEFAULT_ROUTE
61 %token ENM_STATE ENM_FMRI ENM_START ENM_STOP
62 %token LOC_NAMESERVICES LOC_NAMESERVICES_CONFIG
63 %token LOC_DNS_CONFIGSRC LOC_DNS_DOMAIN LOC_DNS_SERVERS LOC_DNS_SEARCH
64 %token LOC_NIS_CONFIGSRC LOC_NIS_SERVERS
65 %token LOC_LDAP_CONFIGSRC LOC_LDAP_SERVERS
66 %token LOC_DEFAULT_DOMAIN LOC_NFSV4_DOMAIN
67 %token LOC_IPF_CONFIG LOC_IPF_V6_CONFIG
68 %token LOC_IPNAT_CONFIG LOC_IPPOOL_CONFIG LOC_IKE_CONFIG LOC_IPSECPOL_CONFIG
69 %token WLAN_BSSIDS WLAN_PRIORITY WLAN_KEYNAME WLAN_KEYSLOT WLAN_SECURITY_MODE
71 %type <strval> TOKEN EQUAL OPTION
72 %type <ival> resource1_type LOC NCP ENM WLAN
73 %type <ival> resource2_type NCU
74 %type <ival> ncu_class_type PHYS IP
75 %type <ival> property_type UNKNOWN ACTIVATION_MODE CONDITIONS ENABLED
76 TYPE CLASS PARENT PRIORITY_GROUP PRIORITY_MODE
77 LINK_MACADDR LINK_AUTOPUSH LINK_MTU
78 IP_VERSION IPV4_ADDRSRC IPV4_ADDR IPV4_DEFAULT_ROUTE
79 IPV6_ADDRSRC IPV6_ADDR IPV6_DEFAULT_ROUTE
80 ENM_STATE ENM_FMRI ENM_START ENM_STOP
81 LOC_NAMESERVICES LOC_NAMESERVICES_CONFIG
82 LOC_DNS_CONFIGSRC LOC_DNS_DOMAIN LOC_DNS_SERVERS LOC_DNS_SEARCH
83 LOC_NIS_CONFIGSRC LOC_NIS_SERVERS
84 LOC_LDAP_CONFIGSRC LOC_LDAP_SERVERS
85 LOC_DEFAULT_DOMAIN LOC_NFSV4_DOMAIN
86 LOC_IPF_CONFIG LOC_IPF_V6_CONFIG
87 LOC_IPNAT_CONFIG LOC_IPPOOL_CONFIG LOC_IKE_CONFIG LOC_IPSECPOL_CONFIG
88 WLAN_BSSIDS WLAN_PRIORITY WLAN_KEYNAME WLAN_KEYSLOT WLAN_SECURITY_MODE
89 %type <cmd> command
90 %type <cmd> cancel_command CANCEL
91 %type <cmd> clear_command CLEAR
92 %type <cmd> commit_command COMMIT
93 %type <cmd> create_command CREATE
94 %type <cmd> destroy_command DESTROY
95 %type <cmd> end_command END
96 %type <cmd> exit_command EXIT
97 %type <cmd> export_command EXPORT
98 %type <cmd> get_command GET
99 %type <cmd> help_command HELP
100 %type <cmd> list_command LIST
101 %type <cmd> revert_command REVERT
102 %type <cmd> select_command SELECT
103 %type <cmd> set_command SET
104 %type <cmd> verify_command VERIFY
105 %type <cmd> walkprop_command WALKPROP
106 %type <cmd> terminator
110 commands: command terminator
112 if ($1 != NULL) {
113 if ($1->cmd_handler != NULL)
114 if (check_scope($1->cmd_num))
115 $1->cmd_handler($1);
116 free_cmd($1);
118 return (0);
120 | command error terminator
122 if ($1 != NULL)
123 free_cmd($1);
124 if (YYRECOVERING())
125 YYABORT;
126 yyclearin;
127 yyerrok;
129 | error terminator
131 if (YYRECOVERING())
132 YYABORT;
133 yyclearin;
134 yyerrok;
136 | terminator
138 return (0);
141 command: cancel_command
142 | clear_command
143 | commit_command
144 | create_command
145 | destroy_command
146 | end_command
147 | exit_command
148 | export_command
149 | get_command
150 | help_command
151 | list_command
152 | revert_command
153 | select_command
154 | set_command
155 | verify_command
156 | walkprop_command
158 terminator: '\n' { newline_terminated = B_TRUE; }
159 | ';' { newline_terminated = B_FALSE; }
161 cancel_command: CANCEL
163 if (($$ = alloc_cmd()) == NULL)
164 YYERROR;
165 cmd = $$;
166 $$->cmd_num = CMD_CANCEL;
167 $$->cmd_handler = &cancel_func;
168 $$->cmd_argc = 0;
169 $$->cmd_argv[0] = NULL;
172 clear_command: CLEAR
174 command_usage(CMD_CLEAR);
175 YYERROR;
177 | CLEAR TOKEN
179 properr($2);
180 YYERROR;
182 | CLEAR property_type
184 /* clear prop */
185 if (($$ = alloc_cmd()) == NULL)
186 YYERROR;
187 cmd = $$;
188 $$->cmd_num = CMD_CLEAR;
189 $$->cmd_handler = &clear_func;
190 $$->cmd_prop_type = $2;
191 $$->cmd_argc = 0;
192 $$->cmd_argv[0] = NULL;
195 commit_command: COMMIT
197 if (($$ = alloc_cmd()) == NULL)
198 YYERROR;
199 cmd = $$;
200 $$->cmd_num = CMD_COMMIT;
201 $$->cmd_handler = &commit_func;
202 $$->cmd_argc = 0;
203 $$->cmd_argv[0] = NULL;
206 create_command: CREATE
208 command_usage(CMD_CREATE);
209 YYERROR;
211 | CREATE TOKEN
213 command_usage(CMD_CREATE);
214 YYERROR;
216 | CREATE resource1_type
218 command_usage(CMD_CREATE);
219 YYERROR;
221 | CREATE resource2_type
223 command_usage(CMD_CREATE);
224 YYERROR;
226 | CREATE resource1_type TOKEN
228 /* create enm/loc/ncp test */
229 if (($$ = alloc_cmd()) == NULL)
230 YYERROR;
231 cmd = $$;
232 $$->cmd_num = CMD_CREATE;
233 $$->cmd_handler = &create_func;
234 $$->cmd_res1_type = $2;
235 $$->cmd_argc = 1;
236 $$->cmd_argv[0] = $3;
237 $$->cmd_argv[1] = NULL;
239 | CREATE resource2_type ncu_class_type TOKEN
241 /* create ncu ip/phys test */
242 if (($$ = alloc_cmd()) == NULL)
243 YYERROR;
244 cmd = $$;
245 $$->cmd_num = CMD_CREATE;
246 $$->cmd_handler = &create_func;
247 $$->cmd_res1_type = RT1_NCP;
248 $$->cmd_res2_type = $2;
249 $$->cmd_ncu_class_type = $3;
250 $$->cmd_argc = 1;
251 $$->cmd_argv[0] = $4;
252 $$->cmd_argv[1] = NULL;
254 | CREATE OPTION TOKEN resource1_type TOKEN
256 /* create -t old enm/loc/ncp test */
257 if (($$ = alloc_cmd()) == NULL)
258 YYERROR;
259 cmd = $$;
260 $$->cmd_num = CMD_CREATE;
261 $$->cmd_handler = &create_func;
262 $$->cmd_res1_type = $4;
263 $$->cmd_argc = 3;
264 $$->cmd_argv[0] = $2;
265 $$->cmd_argv[1] = $3;
266 $$->cmd_argv[2] = $5;
267 $$->cmd_argv[3] = NULL;
269 | CREATE OPTION TOKEN resource2_type ncu_class_type TOKEN
271 /* create -t old ncu ip/phys test */
272 if (($$ = alloc_cmd()) == NULL)
273 YYERROR;
274 cmd = $$;
275 $$->cmd_num = CMD_CREATE;
276 $$->cmd_handler = &create_func;
277 $$->cmd_res1_type = RT1_NCP;
278 $$->cmd_res2_type = $4;
279 $$->cmd_ncu_class_type = $5;
280 $$->cmd_argc = 3;
281 $$->cmd_argv[0] = $2;
282 $$->cmd_argv[1] = $3;
283 $$->cmd_argv[2] = $6;
284 $$->cmd_argv[3] = NULL;
287 destroy_command: DESTROY
289 command_usage(CMD_DESTROY);
290 YYERROR;
292 | DESTROY OPTION
294 /* destroy -a */
295 if (($$ = alloc_cmd()) == NULL)
296 YYERROR;
297 cmd = $$;
298 $$->cmd_num = CMD_DESTROY;
299 $$->cmd_handler = &destroy_func;
300 $$->cmd_res1_type = -1; /* special value */
301 $$->cmd_argc = 1;
302 $$->cmd_argv[0] = $2;
303 $$->cmd_argv[1] = NULL;
305 | DESTROY resource1_type
307 command_usage(CMD_DESTROY);
308 YYERROR;
310 | DESTROY resource2_type
312 command_usage(CMD_DESTROY);
313 YYERROR;
315 | DESTROY resource1_type TOKEN
317 /* destroy enm/loc/ncp test */
318 if (($$ = alloc_cmd()) == NULL)
319 YYERROR;
320 cmd = $$;
321 $$->cmd_num = CMD_DESTROY;
322 $$->cmd_handler = &destroy_func;
323 $$->cmd_res1_type = $2;
324 $$->cmd_argc = 1;
325 $$->cmd_argv[0] = $3;
326 $$->cmd_argv[1] = NULL;
328 | DESTROY resource2_type TOKEN
330 /* destroy ncu test (class inferred) */
331 if (($$ = alloc_cmd()) == NULL)
332 YYERROR;
333 cmd = $$;
334 $$->cmd_num = CMD_DESTROY;
335 $$->cmd_handler = &destroy_func;
336 $$->cmd_res1_type = RT1_NCP;
337 $$->cmd_res2_type = $2;
338 $$->cmd_ncu_class_type = NCU_CLASS_ANY;
339 $$->cmd_argc = 1;
340 $$->cmd_argv[0] = $3;
341 $$->cmd_argv[1] = NULL;
343 | DESTROY resource2_type ncu_class_type TOKEN
345 /* destroy ncu ip/phys test */
346 if (($$ = alloc_cmd()) == NULL)
347 YYERROR;
348 cmd = $$;
349 $$->cmd_num = CMD_DESTROY;
350 $$->cmd_handler = &destroy_func;
351 $$->cmd_res1_type = RT1_NCP;
352 $$->cmd_res2_type = $2;
353 $$->cmd_ncu_class_type = $3;
354 $$->cmd_argc = 1;
355 $$->cmd_argv[0] = $4;
356 $$->cmd_argv[1] = NULL;
359 end_command: END
361 if (($$ = alloc_cmd()) == NULL)
362 YYERROR;
363 cmd = $$;
364 $$->cmd_num = CMD_END;
365 $$->cmd_handler = &end_func;
366 $$->cmd_argc = 0;
367 $$->cmd_argv[0] = NULL;
370 exit_command: EXIT
372 if (($$ = alloc_cmd()) == NULL)
373 YYERROR;
374 cmd = $$;
375 $$->cmd_num = CMD_EXIT;
376 $$->cmd_handler = &exit_func;
377 $$->cmd_argc = 0;
378 $$->cmd_argv[0] = NULL;
381 export_command: EXPORT
383 if (($$ = alloc_cmd()) == NULL)
384 YYERROR;
385 cmd = $$;
386 $$->cmd_num = CMD_EXPORT;
387 $$->cmd_handler = &export_func;
388 $$->cmd_argc = 0;
389 $$->cmd_argv[0] = NULL;
391 | EXPORT TOKEN
393 command_usage(CMD_EXPORT);
394 YYERROR;
396 | EXPORT OPTION
398 /* export -d */
399 if (($$ = alloc_cmd()) == NULL)
400 YYERROR;
401 cmd = $$;
402 $$->cmd_num = CMD_EXPORT;
403 $$->cmd_handler = &export_func;
404 $$->cmd_argc = 1;
405 $$->cmd_argv[0] = $2;
406 $$->cmd_argv[1] = NULL;
408 | EXPORT OPTION TOKEN
410 /* export -f file */
411 if (($$ = alloc_cmd()) == NULL)
412 YYERROR;
413 cmd = $$;
414 $$->cmd_num = CMD_EXPORT;
415 $$->cmd_handler = &export_func;
416 $$->cmd_argc = 2;
417 $$->cmd_argv[0] = $2;
418 $$->cmd_argv[1] = $3;
419 $$->cmd_argv[2] = NULL;
421 | EXPORT OPTION OPTION TOKEN
423 /* export -d -f file */
424 if (($$ = alloc_cmd()) == NULL)
425 YYERROR;
426 cmd = $$;
427 $$->cmd_num = CMD_EXPORT;
428 $$->cmd_handler = &export_func;
429 $$->cmd_argc = 3;
430 $$->cmd_argv[0] = $2;
431 $$->cmd_argv[1] = $3;
432 $$->cmd_argv[2] = $4;
433 $$->cmd_argv[3] = NULL;
435 | EXPORT resource1_type TOKEN
437 /* export enm/loc/ncp test */
438 if (($$ = alloc_cmd()) == NULL)
439 YYERROR;
440 cmd = $$;
441 $$->cmd_num = CMD_EXPORT;
442 $$->cmd_handler = &export_func;
443 $$->cmd_res1_type = $2;
444 $$->cmd_argc = 1;
445 $$->cmd_argv[0] = $3;
446 $$->cmd_argv[1] = NULL;
448 | EXPORT resource2_type TOKEN
450 /* export ncu test (all ncu's named test) */
451 if (($$ = alloc_cmd()) == NULL)
452 YYERROR;
453 cmd = $$;
454 $$->cmd_num = CMD_EXPORT;
455 $$->cmd_handler = &export_func;
456 $$->cmd_res1_type = RT1_NCP;
457 $$->cmd_res2_type = $2;
458 $$->cmd_ncu_class_type = NCU_CLASS_ANY;
459 $$->cmd_argc = 1;
460 $$->cmd_argv[0] = $3;
461 $$->cmd_argv[1] = NULL;
463 | EXPORT resource2_type ncu_class_type TOKEN
465 /* export ncu ip/phys test */
466 if (($$ = alloc_cmd()) == NULL)
467 YYERROR;
468 cmd = $$;
469 $$->cmd_num = CMD_EXPORT;
470 $$->cmd_handler = &export_func;
471 $$->cmd_res1_type = RT1_NCP;
472 $$->cmd_res2_type = $2;
473 $$->cmd_ncu_class_type = $3;
474 $$->cmd_argc = 1;
475 $$->cmd_argv[0] = $4;
476 $$->cmd_argv[1] = NULL;
478 | EXPORT OPTION TOKEN resource1_type TOKEN
480 /* export -f file enm/loc/ncp test */
481 if (($$ = alloc_cmd()) == NULL)
482 YYERROR;
483 cmd = $$;
484 $$->cmd_num = CMD_EXPORT;
485 $$->cmd_handler = &export_func;
486 $$->cmd_res1_type = $4;
487 $$->cmd_argc = 3;
488 $$->cmd_argv[0] = $2;
489 $$->cmd_argv[1] = $3;
490 $$->cmd_argv[2] = $5;
491 $$->cmd_argv[3] = NULL;
493 | EXPORT OPTION TOKEN resource2_type TOKEN
495 /* export -f file ncu test (all ncu's named test) */
496 if (($$ = alloc_cmd()) == NULL)
497 YYERROR;
498 cmd = $$;
499 $$->cmd_num = CMD_EXPORT;
500 $$->cmd_handler = &export_func;
501 $$->cmd_res1_type = RT1_NCP;
502 $$->cmd_res2_type = $4;
503 $$->cmd_ncu_class_type = NCU_CLASS_ANY;
504 $$->cmd_argc = 3;
505 $$->cmd_argv[0] = $2;
506 $$->cmd_argv[1] = $3;
507 $$->cmd_argv[2] = $5;
508 $$->cmd_argv[3] = NULL;
510 | EXPORT OPTION TOKEN resource2_type ncu_class_type TOKEN
512 /* export -f file ncu ip/phys test */
513 if (($$ = alloc_cmd()) == NULL)
514 YYERROR;
515 cmd = $$;
516 $$->cmd_num = CMD_EXPORT;
517 $$->cmd_handler = &export_func;
518 $$->cmd_res1_type = RT1_NCP;
519 $$->cmd_res2_type = $4;
520 $$->cmd_ncu_class_type = $5;
521 $$->cmd_argc = 3;
522 $$->cmd_argv[0] = $2;
523 $$->cmd_argv[1] = $3;
524 $$->cmd_argv[2] = $6;
525 $$->cmd_argv[3] = NULL;
528 get_command: GET
530 command_usage(CMD_GET);
531 YYERROR;
533 | GET TOKEN
535 properr($2);
536 YYERROR;
538 | GET property_type
540 /* get prop */
541 if (($$ = alloc_cmd()) == NULL)
542 YYERROR;
543 cmd = $$;
544 $$->cmd_num = CMD_GET;
545 $$->cmd_handler = &get_func;
546 $$->cmd_prop_type = $2;
547 $$->cmd_argc = 0;
548 $$->cmd_argv[0] = NULL;
550 | GET OPTION property_type
552 /* get -V prop */
553 if (($$ = alloc_cmd()) == NULL)
554 YYERROR;
555 cmd = $$;
556 $$->cmd_num = CMD_GET;
557 $$->cmd_handler = &get_func;
558 $$->cmd_prop_type = $3;
559 $$->cmd_argc = 1;
560 $$->cmd_argv[0] = $2;
561 $$->cmd_argv[1] = NULL;
564 help_command: HELP
566 if (($$ = alloc_cmd()) == NULL)
567 YYERROR;
568 cmd = $$;
569 $$->cmd_num = CMD_HELP;
570 $$->cmd_handler = &help_func;
571 $$->cmd_argc = 0;
572 $$->cmd_argv[0] = NULL;
574 | HELP TOKEN
576 /* help command */
577 if (($$ = alloc_cmd()) == NULL)
578 YYERROR;
579 cmd = $$;
580 $$->cmd_num = CMD_HELP;
581 $$->cmd_handler = &help_func;
582 $$->cmd_argc = 1;
583 $$->cmd_argv[0] = $2;
584 $$->cmd_argv[1] = NULL;
587 list_command: LIST
589 if (($$ = alloc_cmd()) == NULL)
590 YYERROR;
591 cmd = $$;
592 $$->cmd_num = CMD_LIST;
593 $$->cmd_handler = &list_func;
594 $$->cmd_argc = 0;
595 $$->cmd_argv[0] = NULL;
597 | LIST TOKEN
599 command_usage(CMD_LIST);
600 YYERROR;
602 | LIST OPTION
604 /* list -a */
605 if (($$ = alloc_cmd()) == NULL)
606 YYERROR;
607 cmd = $$;
608 $$->cmd_num = CMD_LIST;
609 $$->cmd_handler = &list_func;
610 $$->cmd_res1_type = -1; /* special value */
611 $$->cmd_argc = 1;
612 $$->cmd_argv[0] = $2;
613 $$->cmd_argv[1] = NULL;
615 | LIST resource1_type
617 command_usage(CMD_LIST);
618 YYERROR;
620 | LIST resource2_type
622 command_usage(CMD_LIST);
623 YYERROR;
625 | LIST resource1_type TOKEN
627 /* list enm/loc/ncp test */
628 if (($$ = alloc_cmd()) == NULL)
629 YYERROR;
630 cmd = $$;
631 $$->cmd_num = CMD_LIST;
632 $$->cmd_handler = &list_func;
633 $$->cmd_res1_type = $2;
634 $$->cmd_argc = 1;
635 $$->cmd_argv[0] = $3;
636 $$->cmd_argv[1] = NULL;
638 | LIST resource2_type TOKEN
640 /* list ncu test (all ncu's named test) */
641 if (($$ = alloc_cmd()) == NULL)
642 YYERROR;
643 cmd = $$;
644 $$->cmd_num = CMD_LIST;
645 $$->cmd_handler = &list_func;
646 $$->cmd_res1_type = RT1_NCP;
647 $$->cmd_res2_type = $2;
648 $$->cmd_ncu_class_type = NCU_CLASS_ANY;
649 $$->cmd_argc = 1;
650 $$->cmd_argv[0] = $3;
651 $$->cmd_argv[1] = NULL;
653 | LIST resource2_type ncu_class_type TOKEN
655 /* list ncu ip/phys test */
656 if (($$ = alloc_cmd()) == NULL)
657 YYERROR;
658 cmd = $$;
659 $$->cmd_num = CMD_LIST;
660 $$->cmd_handler = &list_func;
661 $$->cmd_res1_type = RT1_NCP;
662 $$->cmd_res2_type = $2;
663 $$->cmd_ncu_class_type = $3;
664 $$->cmd_argc = 1;
665 $$->cmd_argv[0] = $4;
666 $$->cmd_argv[1] = NULL;
668 | LIST OPTION resource1_type TOKEN
670 /* list -a enm/loc/ncp test */
671 if (($$ = alloc_cmd()) == NULL)
672 YYERROR;
673 cmd = $$;
674 $$->cmd_num = CMD_LIST;
675 $$->cmd_handler = &list_func;
676 $$->cmd_res1_type = $3;
677 $$->cmd_argc = 2;
678 $$->cmd_argv[0] = $4;
679 $$->cmd_argv[1] = $2;
680 $$->cmd_argv[2] = NULL;
682 | LIST OPTION resource2_type TOKEN
684 /* list -a ncu test (all ncu's named test) */
685 if (($$ = alloc_cmd()) == NULL)
686 YYERROR;
687 cmd = $$;
688 $$->cmd_num = CMD_LIST;
689 $$->cmd_handler = &list_func;
690 $$->cmd_res1_type = RT1_NCP;
691 $$->cmd_res2_type = $3;
692 $$->cmd_ncu_class_type = NCU_CLASS_ANY;
693 $$->cmd_argc = 2;
694 $$->cmd_argv[0] = $4;
695 $$->cmd_argv[1] = $2;
696 $$->cmd_argv[2] = NULL;
698 | LIST OPTION resource2_type ncu_class_type TOKEN
700 /* list -a ncu ip/phys test */
701 if (($$ = alloc_cmd()) == NULL)
702 YYERROR;
703 cmd = $$;
704 $$->cmd_num = CMD_LIST;
705 $$->cmd_handler = &list_func;
706 $$->cmd_res1_type = RT1_NCP;
707 $$->cmd_res2_type = $3;
708 $$->cmd_ncu_class_type = $4;
709 $$->cmd_argc = 2;
710 $$->cmd_argv[0] = $5;
711 $$->cmd_argv[1] = $2;
712 $$->cmd_argv[2] = NULL;
715 revert_command: REVERT
717 if (($$ = alloc_cmd()) == NULL)
718 YYERROR;
719 cmd = $$;
720 $$->cmd_num = CMD_REVERT;
721 $$->cmd_handler = &revert_func;
722 $$->cmd_argc = 0;
723 $$->cmd_argv[0] = NULL;
726 select_command: SELECT
728 command_usage(CMD_SELECT);
729 YYERROR;
731 | SELECT TOKEN
733 command_usage(CMD_SELECT);
734 YYERROR;
736 | SELECT resource1_type
738 command_usage(CMD_SELECT);
739 YYERROR;
741 | SELECT resource2_type
743 command_usage(CMD_SELECT);
744 YYERROR;
746 | SELECT resource1_type TOKEN
748 /* select enm/loc/ncp test */
749 if (($$ = alloc_cmd()) == NULL)
750 YYERROR;
751 cmd = $$;
752 $$->cmd_num = CMD_SELECT;
753 $$->cmd_handler = &select_func;
754 $$->cmd_res1_type = $2;
755 $$->cmd_argc = 1;
756 $$->cmd_argv[0] = $3;
757 $$->cmd_argv[1] = NULL;
759 | SELECT resource2_type TOKEN
761 /* select ncu test (class inferred) */
762 if (($$ = alloc_cmd()) == NULL)
763 YYERROR;
764 cmd = $$;
765 $$->cmd_num = CMD_SELECT;
766 $$->cmd_handler = &select_func;
767 $$->cmd_res1_type = RT1_NCP;
768 $$->cmd_res2_type = $2;
769 $$->cmd_ncu_class_type = NCU_CLASS_ANY;
770 $$->cmd_argc = 1;
771 $$->cmd_argv[0] = $3;
772 $$->cmd_argv[1] = NULL;
774 | SELECT resource2_type ncu_class_type TOKEN
776 /* select ncu ip/phys test */
777 if (($$ = alloc_cmd()) == NULL)
778 YYERROR;
779 cmd = $$;
780 $$->cmd_num = CMD_SELECT;
781 $$->cmd_handler = &select_func;
782 $$->cmd_res1_type = RT1_NCP;
783 $$->cmd_res2_type = $2;
784 $$->cmd_ncu_class_type = $3;
785 $$->cmd_argc = 1;
786 $$->cmd_argv[0] = $4;
787 $$->cmd_argv[1] = NULL;
790 set_command: SET
792 command_usage(CMD_SET);
793 YYERROR;
795 | SET TOKEN
797 properr($2);
798 YYERROR;
800 | SET property_type EQUAL TOKEN
802 /* set prop=value */
803 if (($$ = alloc_cmd()) == NULL)
804 YYERROR;
805 cmd = $$;
806 $$->cmd_num = CMD_SET;
807 $$->cmd_handler = &set_func;
808 $$->cmd_prop_type = $2;
809 $$->cmd_argc = 1;
810 $$->cmd_argv[0] = $4;
811 $$->cmd_argv[1] = NULL;
814 verify_command: VERIFY
816 if (($$ = alloc_cmd()) == NULL)
817 YYERROR;
818 cmd = $$;
819 $$->cmd_num = CMD_VERIFY;
820 $$->cmd_handler = &verify_func;
821 $$->cmd_argc = 0;
822 $$->cmd_argv[0] = NULL;
825 walkprop_command: WALKPROP
827 if (($$ = alloc_cmd()) == NULL)
828 YYERROR;
829 cmd = $$;
830 $$->cmd_num = CMD_WALKPROP;
831 $$->cmd_handler = &walkprop_func;
832 $$->cmd_argc = 0;
833 $$->cmd_argv[0] = NULL;
835 | WALKPROP OPTION
837 /* walkprop -a */
838 if (($$ = alloc_cmd()) == NULL)
839 YYERROR;
840 cmd = $$;
841 $$->cmd_num = CMD_WALKPROP;
842 $$->cmd_handler = &walkprop_func;
843 $$->cmd_argc = 1;
844 $$->cmd_argv[0] = $2;
845 $$->cmd_argv[1] = NULL;
848 resource1_type: LOC { $$ = RT1_LOC; }
849 | NCP { $$ = RT1_NCP; }
850 | ENM { $$ = RT1_ENM; }
851 | WLAN { $$ = RT1_WLAN; }
853 resource2_type: NCU { $$ = RT2_NCU; }
855 ncu_class_type: PHYS { $$ = NCU_CLASS_PHYS; }
856 | IP { $$ = NCU_CLASS_IP; }
858 property_type: UNKNOWN { $$ = PT_UNKNOWN; }
859 | ACTIVATION_MODE { $$ = PT_ACTIVATION_MODE; }
860 | CONDITIONS { $$ = PT_CONDITIONS; }
861 | ENABLED { $$ = PT_ENABLED; }
862 | TYPE { $$ = PT_TYPE; }
863 | CLASS { $$ = PT_CLASS; }
864 | PARENT { $$ = PT_PARENT; }
865 | PRIORITY_GROUP { $$ = PT_PRIORITY_GROUP; }
866 | PRIORITY_MODE { $$ = PT_PRIORITY_MODE; }
867 | LINK_MACADDR { $$ = PT_LINK_MACADDR; }
868 | LINK_AUTOPUSH { $$ = PT_LINK_AUTOPUSH; }
869 | LINK_MTU { $$ = PT_LINK_MTU; }
870 | IP_VERSION { $$ = PT_IP_VERSION; }
871 | IPV4_ADDRSRC { $$ = PT_IPV4_ADDRSRC; }
872 | IPV4_ADDR { $$ = PT_IPV4_ADDR; }
873 | IPV4_DEFAULT_ROUTE { $$ = PT_IPV4_DEFAULT_ROUTE; }
874 | IPV6_ADDRSRC { $$ = PT_IPV6_ADDRSRC; }
875 | IPV6_ADDR { $$ = PT_IPV6_ADDR; }
876 | IPV6_DEFAULT_ROUTE { $$ = PT_IPV6_DEFAULT_ROUTE; }
877 | ENM_FMRI { $$ = PT_ENM_FMRI; }
878 | ENM_START { $$ = PT_ENM_START; }
879 | ENM_STOP { $$ = PT_ENM_STOP; }
880 | LOC_NAMESERVICES { $$ = PT_LOC_NAMESERVICES; }
881 | LOC_NAMESERVICES_CONFIG { $$ = PT_LOC_NAMESERVICES_CONFIG; }
882 | LOC_DNS_CONFIGSRC { $$ = PT_LOC_DNS_CONFIGSRC; }
883 | LOC_DNS_DOMAIN { $$ = PT_LOC_DNS_DOMAIN; }
884 | LOC_DNS_SERVERS { $$ = PT_LOC_DNS_SERVERS; }
885 | LOC_DNS_SEARCH { $$ = PT_LOC_DNS_SEARCH; }
886 | LOC_NIS_CONFIGSRC { $$ = PT_LOC_NIS_CONFIGSRC; }
887 | LOC_NIS_SERVERS { $$ = PT_LOC_NIS_SERVERS; }
888 | LOC_LDAP_CONFIGSRC { $$ = PT_LOC_LDAP_CONFIGSRC; }
889 | LOC_LDAP_SERVERS { $$ = PT_LOC_LDAP_SERVERS; }
890 | LOC_DEFAULT_DOMAIN { $$ = PT_LOC_DEFAULT_DOMAIN; }
891 | LOC_NFSV4_DOMAIN { $$ = PT_LOC_NFSV4_DOMAIN; }
892 | LOC_IPF_CONFIG { $$ = PT_LOC_IPF_CONFIG; }
893 | LOC_IPF_V6_CONFIG { $$ = PT_LOC_IPF_V6_CONFIG; }
894 | LOC_IPNAT_CONFIG { $$ = PT_LOC_IPNAT_CONFIG; }
895 | LOC_IPPOOL_CONFIG { $$ = PT_LOC_IPPOOL_CONFIG; }
896 | LOC_IKE_CONFIG { $$ = PT_LOC_IKE_CONFIG; }
897 | LOC_IPSECPOL_CONFIG { $$ = PT_LOC_IPSECPOL_CONFIG; }
898 | WLAN_BSSIDS { $$ = PT_WLAN_BSSIDS; }
899 | WLAN_PRIORITY { $$ = PT_WLAN_PRIORITY; }
900 | WLAN_KEYNAME { $$ = PT_WLAN_KEYNAME; }
901 | WLAN_KEYSLOT { $$ = PT_WLAN_KEYSLOT; }
902 | WLAN_SECURITY_MODE { $$ = PT_WLAN_SECURITY_MODE; }