Print this page
7388 Support DHCP Client FQDN. Allow IAID/DUID for all v4.


   6  * Common Development and Distribution License (the "License").
   7  * You may not use this file except in compliance with the License.
   8  *
   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.
  13  *
  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]
  19  *
  20  * CDDL HEADER END
  21  */
  22 
  23 /*
  24  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  25  * Use is subject to license terms.

  26  */
  27 
  28 #include <stdio.h>
  29 #include <sys/types.h>
  30 
  31 #include "nwamcfg.h"
  32 
  33 static cmd_t *cmd = NULL;               /* Command being processed */
  34 
  35 /* yacc externals */
  36 extern int yydebug;
  37 extern void yyerror(char *s);
  38 
  39 extern boolean_t newline_terminated;
  40 
  41 %}
  42 
  43 %union {
  44         int ival;
  45         char *strval;


  50 
  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

  70 
  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
 107 
 108 %%


 600                 YYERROR;
 601         }
 602         |       LIST OPTION
 603         {
 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;
 614         }
 615         |       LIST resource1_type
 616         {
 617                 command_usage(CMD_LIST);
 618                 YYERROR;
 619         }





 620         |       LIST resource2_type
 621         {
 622                 command_usage(CMD_LIST);
 623                 YYERROR;
 624         }










 625         |       LIST resource1_type TOKEN
 626         {
 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;
 637         }
 638         |       LIST resource2_type TOKEN
 639         {
 640                 /* list ncu test (all ncu's named test) */
 641                 if (($$ = alloc_cmd()) == NULL)
 642                         YYERROR;
 643                 cmd = $$;
 644                 $$->cmd_num = CMD_LIST;


 726 select_command: SELECT
 727         {
 728                 command_usage(CMD_SELECT);
 729                 YYERROR;
 730         }
 731         |       SELECT TOKEN
 732         {
 733                 command_usage(CMD_SELECT);
 734                 YYERROR;
 735         }
 736         |       SELECT resource1_type
 737         {
 738                 command_usage(CMD_SELECT);
 739                 YYERROR;
 740         }
 741         |       SELECT resource2_type
 742         {
 743                 command_usage(CMD_SELECT);
 744                 YYERROR;
 745         }





 746         |       SELECT resource1_type TOKEN
 747         {
 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;
 758         }
 759         |       SELECT resource2_type TOKEN
 760         {
 761                 /* select ncu test (class inferred) */
 762                 if (($$ = alloc_cmd()) == NULL)
 763                         YYERROR;
 764                 cmd = $$;
 765                 $$->cmd_num = CMD_SELECT;


 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; }


 903 
 904 %%


   6  * Common Development and Distribution License (the "License").
   7  * You may not use this file except in compliance with the License.
   8  *
   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.
  13  *
  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]
  19  *
  20  * CDDL HEADER END
  21  */
  22 
  23 /*
  24  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  25  * Use is subject to license terms.
  26  * Copyright (c) 2016, Chris Fraire <cfraire@me.com>.
  27  */
  28 
  29 #include <stdio.h>
  30 #include <sys/types.h>
  31 
  32 #include "nwamcfg.h"
  33 
  34 static cmd_t *cmd = NULL;               /* Command being processed */
  35 
  36 /* yacc externals */
  37 extern int yydebug;
  38 extern void yyerror(char *s);
  39 
  40 extern boolean_t newline_terminated;
  41 
  42 %}
  43 
  44 %union {
  45         int ival;
  46         char *strval;


  51 
  52 %token CANCEL CLEAR COMMIT CREATE DESTROY END EXIT EXPORT GET HELP
  53 %token LIST REVERT SELECT SET VERIFY WALKPROP
  54 %token LOC NCP NCU ENM WLAN
  55 %token PHYS IP
  56 %token TOKEN EQUAL OPTION
  57 %token UNKNOWN ACTIVATION_MODE CONDITIONS ENABLED
  58 %token TYPE CLASS PARENT PRIORITY_GROUP PRIORITY_MODE
  59 %token LINK_MACADDR LINK_AUTOPUSH LINK_MTU
  60 %token IP_VERSION IPV4_ADDRSRC IPV4_ADDR IPV4_DEFAULT_ROUTE
  61 %token IPV6_ADDRSRC IPV6_ADDR IPV6_DEFAULT_ROUTE
  62 %token ENM_STATE ENM_FMRI ENM_START ENM_STOP
  63 %token LOC_NAMESERVICES LOC_NAMESERVICES_CONFIG
  64 %token LOC_DNS_CONFIGSRC LOC_DNS_DOMAIN LOC_DNS_SERVERS LOC_DNS_SEARCH
  65 %token LOC_NIS_CONFIGSRC LOC_NIS_SERVERS
  66 %token LOC_LDAP_CONFIGSRC LOC_LDAP_SERVERS
  67 %token LOC_DEFAULT_DOMAIN LOC_NFSV4_DOMAIN
  68 %token LOC_IPF_CONFIG LOC_IPF_V6_CONFIG
  69 %token LOC_IPNAT_CONFIG LOC_IPPOOL_CONFIG LOC_IKE_CONFIG LOC_IPSECPOL_CONFIG
  70 %token WLAN_BSSIDS WLAN_PRIORITY WLAN_KEYNAME WLAN_KEYSLOT WLAN_SECURITY_MODE
  71 %token IP_PRIMARY IP_REQHOST
  72 
  73 %type <strval> TOKEN EQUAL OPTION
  74 %type <ival> resource1_type LOC NCP ENM WLAN
  75 %type <ival> resource2_type NCU
  76 %type <ival> ncu_class_type PHYS IP
  77 %type <ival> property_type UNKNOWN ACTIVATION_MODE CONDITIONS ENABLED
  78     TYPE CLASS PARENT PRIORITY_GROUP PRIORITY_MODE
  79     LINK_MACADDR LINK_AUTOPUSH LINK_MTU
  80     IP_VERSION IPV4_ADDRSRC IPV4_ADDR IPV4_DEFAULT_ROUTE
  81     IPV6_ADDRSRC IPV6_ADDR IPV6_DEFAULT_ROUTE
  82     ENM_STATE ENM_FMRI ENM_START ENM_STOP
  83     LOC_NAMESERVICES LOC_NAMESERVICES_CONFIG
  84     LOC_DNS_CONFIGSRC LOC_DNS_DOMAIN LOC_DNS_SERVERS LOC_DNS_SEARCH
  85     LOC_NIS_CONFIGSRC LOC_NIS_SERVERS
  86     LOC_LDAP_CONFIGSRC LOC_LDAP_SERVERS
  87     LOC_DEFAULT_DOMAIN LOC_NFSV4_DOMAIN
  88     LOC_IPF_CONFIG LOC_IPF_V6_CONFIG
  89     LOC_IPNAT_CONFIG LOC_IPPOOL_CONFIG LOC_IKE_CONFIG LOC_IPSECPOL_CONFIG
  90     WLAN_BSSIDS WLAN_PRIORITY WLAN_KEYNAME WLAN_KEYSLOT WLAN_SECURITY_MODE
  91     IP_PRIMARY IP_REQHOST
  92 %type <cmd> command
  93 %type <cmd> cancel_command CANCEL
  94 %type <cmd> clear_command CLEAR
  95 %type <cmd> commit_command COMMIT
  96 %type <cmd> create_command CREATE
  97 %type <cmd> destroy_command DESTROY
  98 %type <cmd> end_command END
  99 %type <cmd> exit_command EXIT
 100 %type <cmd> export_command EXPORT
 101 %type <cmd> get_command GET
 102 %type <cmd> help_command HELP
 103 %type <cmd> list_command LIST
 104 %type <cmd> revert_command REVERT
 105 %type <cmd> select_command SELECT
 106 %type <cmd> set_command SET
 107 %type <cmd> verify_command VERIFY
 108 %type <cmd> walkprop_command WALKPROP
 109 %type <cmd> terminator
 110 
 111 %%


 603                 YYERROR;
 604         }
 605         |       LIST OPTION
 606         {
 607                 /* list -a */
 608                 if (($$ = alloc_cmd()) == NULL)
 609                         YYERROR;
 610                 cmd = $$;
 611                 $$->cmd_num = CMD_LIST;
 612                 $$->cmd_handler = &list_func;
 613                 $$->cmd_res1_type = -1; /* special value */
 614                 $$->cmd_argc = 1;
 615                 $$->cmd_argv[0] = $2;
 616                 $$->cmd_argv[1] = NULL;
 617         }
 618         |       LIST resource1_type
 619         {
 620                 command_usage(CMD_LIST);
 621                 YYERROR;
 622         }
 623         |       LIST OPTION resource1_type
 624         {
 625                 command_usage(CMD_LIST);
 626                 YYERROR;
 627         }
 628         |       LIST resource2_type
 629         {
 630                 command_usage(CMD_LIST);
 631                 YYERROR;
 632         }
 633         |       LIST OPTION resource2_type
 634         {
 635                 command_usage(CMD_LIST);
 636                 YYERROR;
 637         }
 638         |       LIST OPTION resource2_type ncu_class_type
 639         {
 640                 command_usage(CMD_LIST);
 641                 YYERROR;
 642         }
 643         |       LIST resource1_type TOKEN
 644         {
 645                 /* list enm/loc/ncp test */
 646                 if (($$ = alloc_cmd()) == NULL)
 647                         YYERROR;
 648                 cmd = $$;
 649                 $$->cmd_num = CMD_LIST;
 650                 $$->cmd_handler = &list_func;
 651                 $$->cmd_res1_type = $2;
 652                 $$->cmd_argc = 1;
 653                 $$->cmd_argv[0] = $3;
 654                 $$->cmd_argv[1] = NULL;
 655         }
 656         |       LIST resource2_type TOKEN
 657         {
 658                 /* list ncu test (all ncu's named test) */
 659                 if (($$ = alloc_cmd()) == NULL)
 660                         YYERROR;
 661                 cmd = $$;
 662                 $$->cmd_num = CMD_LIST;


 744 select_command: SELECT
 745         {
 746                 command_usage(CMD_SELECT);
 747                 YYERROR;
 748         }
 749         |       SELECT TOKEN
 750         {
 751                 command_usage(CMD_SELECT);
 752                 YYERROR;
 753         }
 754         |       SELECT resource1_type
 755         {
 756                 command_usage(CMD_SELECT);
 757                 YYERROR;
 758         }
 759         |       SELECT resource2_type
 760         {
 761                 command_usage(CMD_SELECT);
 762                 YYERROR;
 763         }
 764         |       SELECT resource2_type ncu_class_type
 765         {
 766                 command_usage(CMD_SELECT);
 767                 YYERROR;
 768         }
 769         |       SELECT resource1_type TOKEN
 770         {
 771                 /* select enm/loc/ncp test */
 772                 if (($$ = alloc_cmd()) == NULL)
 773                         YYERROR;
 774                 cmd = $$;
 775                 $$->cmd_num = CMD_SELECT;
 776                 $$->cmd_handler = &select_func;
 777                 $$->cmd_res1_type = $2;
 778                 $$->cmd_argc = 1;
 779                 $$->cmd_argv[0] = $3;
 780                 $$->cmd_argv[1] = NULL;
 781         }
 782         |       SELECT resource2_type TOKEN
 783         {
 784                 /* select ncu test (class inferred) */
 785                 if (($$ = alloc_cmd()) == NULL)
 786                         YYERROR;
 787                 cmd = $$;
 788                 $$->cmd_num = CMD_SELECT;


 906         |       LOC_DNS_DOMAIN          { $$ = PT_LOC_DNS_DOMAIN; }
 907         |       LOC_DNS_SERVERS         { $$ = PT_LOC_DNS_SERVERS; }
 908         |       LOC_DNS_SEARCH          { $$ = PT_LOC_DNS_SEARCH; }
 909         |       LOC_NIS_CONFIGSRC       { $$ = PT_LOC_NIS_CONFIGSRC; }
 910         |       LOC_NIS_SERVERS         { $$ = PT_LOC_NIS_SERVERS; }
 911         |       LOC_LDAP_CONFIGSRC      { $$ = PT_LOC_LDAP_CONFIGSRC; }
 912         |       LOC_LDAP_SERVERS        { $$ = PT_LOC_LDAP_SERVERS; }
 913         |       LOC_DEFAULT_DOMAIN      { $$ = PT_LOC_DEFAULT_DOMAIN; }
 914         |       LOC_NFSV4_DOMAIN        { $$ = PT_LOC_NFSV4_DOMAIN; }
 915         |       LOC_IPF_CONFIG          { $$ = PT_LOC_IPF_CONFIG; }
 916         |       LOC_IPF_V6_CONFIG       { $$ = PT_LOC_IPF_V6_CONFIG; }
 917         |       LOC_IPNAT_CONFIG        { $$ = PT_LOC_IPNAT_CONFIG; }
 918         |       LOC_IPPOOL_CONFIG       { $$ = PT_LOC_IPPOOL_CONFIG; }
 919         |       LOC_IKE_CONFIG          { $$ = PT_LOC_IKE_CONFIG; }
 920         |       LOC_IPSECPOL_CONFIG     { $$ = PT_LOC_IPSECPOL_CONFIG; }
 921         |       WLAN_BSSIDS             { $$ = PT_WLAN_BSSIDS; }
 922         |       WLAN_PRIORITY           { $$ = PT_WLAN_PRIORITY; }
 923         |       WLAN_KEYNAME            { $$ = PT_WLAN_KEYNAME; }
 924         |       WLAN_KEYSLOT            { $$ = PT_WLAN_KEYSLOT; }
 925         |       WLAN_SECURITY_MODE      { $$ = PT_WLAN_SECURITY_MODE; }
 926         |       IP_PRIMARY              { $$ = PT_IP_PRIMARY; }
 927         |       IP_REQHOST              { $$ = PT_IP_REQHOST; }
 928 
 929 %%