]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
auto-generate VALUEs for Option-Request
authorAlan T. DeKok <aland@freeradius.org>
Thu, 31 Oct 2019 20:00:41 +0000 (16:00 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 31 Oct 2019 20:00:41 +0000 (16:00 -0400)
share/dictionary/dhcpv6/dictionary.rfc3315
src/protocols/dhcpv6/base.c

index 55334806f7ea04573a73eb2581e9b2b759b59cd1..66dc980bcf72a549e939ab501a321b837b479989 100644 (file)
@@ -65,150 +65,6 @@ MEMBER              IA-Addr-Options                         octets  # really sub-options
 
 ATTRIBUTE      Option-Request                          6       uint16 array    # Magic option listing requested options
 
-#
-# grep ^ATTRIBUTE share/dictionary/dhcpv6/dictionary.rfc*  | awk '{ print "VALUE\tOption-Request\t" $2 "\t"  $3}'
-#
-VALUE  Option-Request                  Client-ID               1
-VALUE  Option-Request                  Server-ID               2
-VALUE  Option-Request                  IA-NA                   3
-VALUE  Option-Request                  IA-TA                   4
-VALUE  Option-Request                  IA-Addr                 5
-VALUE  Option-Request                  Option-Request          6
-VALUE  Option-Request                  Preference              7
-VALUE  Option-Request                  Elapsed-Time            8
-VALUE  Option-Request                  Relay-Message           9
-VALUE  Option-Request                  Auth                    11
-VALUE  Option-Request                  Unicast                 12
-VALUE  Option-Request                  Status-Code             13
-VALUE  Option-Request                  Rapid-Commit            14
-VALUE  Option-Request                  User-Class              15
-VALUE  Option-Request                  Vendor-Class            16
-VALUE  Option-Request                  Vendor-Opts             17
-VALUE  Option-Request                  Interface-ID            18
-VALUE  Option-Request                  Reconf-Msg              19
-VALUE  Option-Request                  Reconf-Accept           20
-VALUE  Option-Request                  SIP-Server-Domain-Name-List 21
-VALUE  Option-Request                  SIP-Server-Address      22
-VALUE  Option-Request                  IA-PD                   25
-VALUE  Option-Request                  IA-PD-Prefix            26
-VALUE  Option-Request                  DNS-Servers             23
-VALUE  Option-Request                  Domain-List             24
-VALUE  Option-Request                  NIS-Servers             27
-VALUE  Option-Request                  NIS-Plus-Servers        28
-VALUE  Option-Request                  NIS-Domain-Name         29
-VALUE  Option-Request                  NIS-Plus-Domain-Name    30
-VALUE  Option-Request                  SNTP-Servers            31
-VALUE  Option-Request                  Information-Refresh-Time 32
-VALUE  Option-Request                  BCMCS-Server-Domain-Name-List 33
-VALUE  Option-Request                  BCMCS-Server-Address    34
-VALUE  Option-Request                  Subscriber-ID           38
-VALUE  Option-Request                  Relay-Agent-Remote-ID   37
-VALUE  Option-Request                  Client-FQDN             39
-VALUE  Option-Request                  Geoconf-Civic           36
-VALUE  Option-Request                  New-Posix-Timezone      41
-VALUE  Option-Request                  New-TZDB-Timezone       42
-VALUE  Option-Request                  Relay-Agent-Echo-Request 43
-VALUE  Option-Request                  Lease-Query             44
-VALUE  Option-Request                  Client-Data             45
-VALUE  Option-Request                  Client-Last-Transaction-Time 46
-VALUE  Option-Request                  Lease-Query-Relay-Data  47
-VALUE  Option-Request                  Lease-Query-Client-Link 48
-VALUE  Option-Request                  PANA-Authentication-Agent 40
-VALUE  Option-Request                  LoST                    51
-VALUE  Option-Request                  Capwap-AC               52
-VALUE  Option-Request                  Relay-ID                53
-VALUE  Option-Request                  MOD-Address-List        54
-VALUE  Option-Request                  MOS-Address-IS          1
-VALUE  Option-Request                  MOS-Address-CS          2
-VALUE  Option-Request                  MOS-Address-ES          3
-VALUE  Option-Request                  MOS-Domain-Name-List    55
-VALUE  Option-Request                  MOS-Domain-Name-IS      1
-VALUE  Option-Request                  MOS-Domain-Name-CS      2
-VALUE  Option-Request                  MOS-Domain-Name-ES      3
-VALUE  Option-Request                  NTP-Server              56
-VALUE  Option-Request                  NTP-Server-Address      1
-VALUE  Option-Request                  NTP-Server-Multicast-Address 2
-VALUE  Option-Request                  NTP-Server-FQDN         3
-VALUE  Option-Request                  Bootfile-URL            59
-VALUE  Option-Request                  Bootfile-Param          60
-VALUE  Option-Request                  Client-Arch-Type        61
-VALUE  Option-Request                  Client-Network-Interface-ID 62
-VALUE  Option-Request                  LIS-Access-Domain       57
-VALUE  Option-Request                  SIP-US-CS-Domain-List   58
-VALUE  Option-Request                  ANDSF-Address           143
-VALUE  Option-Request                  Geolocation             63
-VALUE  Option-Request                  AFTR-Name               64
-VALUE  Option-Request                  Relay-Supplied-Options  66
-VALUE  Option-Request                  ERP-Local-Domain-Name   65
-VALUE  Option-Request                  PD-Exclude              67
-VALUE  Option-Request                  Virtual-Subnet-Selection 68
-VALUE  Option-Request                  MIP6-Home-Net-ID-FQDN   49
-VALUE  Option-Request                  MIP6-Home-Net-Info      50
-VALUE  Option-Request                  MIP6-Identified-Home-Net-Info 69
-VALUE  Option-Request                  MIP6-Unrestricted-Home-Net-Info 70
-VALUE  Option-Request                  MIP6-Home-Net-Prefix    71
-VALUE  Option-Request                  MIP6-Home-Net-Address   72
-VALUE  Option-Request                  MIP6-Home-Agent-FQDN    73
-VALUE  Option-Request                  DNS-Recursive-Name-Server 74
-VALUE  Option-Request                  Kerberos-Principal-Name 75
-VALUE  Option-Request                  Kerberos-Realm-Name     76
-VALUE  Option-Request                  Kerberos-Default-Realm-Name 77
-VALUE  Option-Request                  Kerberos-KDC            78
-VALUE  Option-Request                  Client-Link-Layer       79
-VALUE  Option-Request                  Link-Address            80
-VALUE  Option-Request                  RADIUS                  81
-VALUE  Option-Request                  Address-Selection       84
-VALUE  Option-Request                  Address-Selection-Table 85
-VALUE  Option-Request                  SOL-Max-RT              82
-VALUE  Option-Request                  INF-Max-RT              83
-VALUE  Option-Request                  PCP-Server              86
-VALUE  Option-Request                  DHCPv4-Msg              87
-VALUE  Option-Request                  S46-Rule                89
-VALUE  Option-Request                  S46-Border-Relay        90
-VALUE  Option-Request                  S46-Default-Mapping-Rule 91
-VALUE  Option-Request                  S46-Address-Binding     92
-VALUE  Option-Request                  S46-Port-Parameters     93
-VALUE  Option-Request                  S46-MAP-Cont-E          94
-VALUE  Option-Request                  S46-MAP-Cont-T          95
-VALUE  Option-Request                  S46-Cont-LW             96
-VALUE  Option-Request                  4RD                     97
-VALUE  Option-Request                  4RD-Map-Rule            98
-VALUE  Option-Request                  4RD-Non-Map-Rule        99
-VALUE  Option-Request                  Lease-Query-Base-Time   100
-VALUE  Option-Request                  Lease-Query-Start-Time  101
-VALUE  Option-Request                  Lease-Query-End-Time    102
-VALUE  Option-Request                  Captive-Portal-URI      103
-VALUE  Option-Request                  MPL-Parameters          104
-VALUE  Option-Request                  ANI-Access-Technology-Type 105
-VALUE  Option-Request                  ANI-Network-Name        106
-VALUE  Option-Request                  ANI-Access-Point-Name   107
-VALUE  Option-Request                  ANI-Access-Point-BSSID  108
-VALUE  Option-Request                  ANI-Operator-Identifier 109
-VALUE  Option-Request                  ANI-Operator-Realm      110
-VALUE  Option-Request                  S46-Priority            111
-VALUE  Option-Request                  Prefix64                113
-VALUE  Option-Request                  Failover-Binding-Status 114
-VALUE  Option-Request                  Failover-Connect-Flags  115
-VALUE  Option-Request                  Failover-DNS-Removal-Info 116
-VALUE  Option-Request                  Failover-DNS-Host-Name  117
-VALUE  Option-Request                  Failover-DNS-Zone-Name  118
-VALUE  Option-Request                  Failover-DNS-Flags      119
-VALUE  Option-Request                  Failover-Expiration-Time 120
-VALUE  Option-Request                  Failover-Max-Unacked-BNDUPD 121
-VALUE  Option-Request                  Failover-Max-Client-Lead-Time 122
-VALUE  Option-Request                  Failover-Max-Partner-Lifetime 123
-VALUE  Option-Request                  Failover-Partner-Lifetime-Sent 124
-VALUE  Option-Request                  Failover-Partner-Down-Time 125
-VALUE  Option-Request                  Failover-Partner-Raw-CLT-Time 126
-VALUE  Option-Request                  Failover-Protocol-Version 127
-VALUE  Option-Request                  Failover-Keepalive-Time 128
-VALUE  Option-Request                  Failover-Reconfigure-Data 129
-VALUE  Option-Request                  Failover-Relationship-Name 130
-VALUE  Option-Request                  Failover-Server-Flags   131
-VALUE  Option-Request                  Failover-Server-State   132
-VALUE  Option-Request                  Failover-Start-Time-Of-State 133
-VALUE  Option-Request                  Failover-State-Expiration-Time 134
-
 ATTRIBUTE      Preference                              7       uint8
 ATTRIBUTE      Elapsed-Time                            8       uint16
 ATTRIBUTE      Relay-Message                           9       octets
index 1bfaa1e6429cefb9170456fdb55ae5eb37ce9806..0a43c9cd2dc09e13c445a526289552c23ed3490a 100644 (file)
@@ -49,11 +49,14 @@ fr_dict_autoload_t libfreeradius_dhcpv6_dict[] = {
 
 static fr_dict_attr_t const *attr_packet_type;
 static fr_dict_attr_t const *attr_transaction_id;
+static fr_dict_attr_t const *attr_option_request;
+
 
 extern fr_dict_attr_autoload_t libfreeradius_dhcpv6_dict_attr[];
 fr_dict_attr_autoload_t libfreeradius_dhcpv6_dict_attr[] = {
        { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv6 },
        { .out = &attr_transaction_id, .name = "Transaction-Id", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv6 },
+       { .out = &attr_option_request, .name = "Option-Request", .type = FR_TYPE_UINT16, .dict = &dict_dhcpv6 },
        { NULL }
 };
 
@@ -440,6 +443,9 @@ ssize_t     fr_dhcpv6_decode(TALLOC_CTX *ctx, uint8_t const *packet, size_t packet_l
 
 int fr_dhcpv6_global_init(void)
 {
+       fr_dict_attr_t const *child;
+       fr_value_box_t          value = { .type = FR_TYPE_UINT16 };
+
        if (instance_count > 0) {
                instance_count++;
                return 0;
@@ -451,6 +457,20 @@ int fr_dhcpv6_global_init(void)
                return -1;
        }
 
+       /*
+        *      Fixup dictionary entry for DHCP-Paramter-Request-List adding all the options
+        */
+       child = NULL;
+       while ((child = fr_dict_attr_iterate_children(fr_dict_root(dict_dhcpv6), &child)) != NULL) {
+               if (child->attr > 65535) continue;
+
+               value.vb_uint16 = child->attr;
+
+               if (fr_dict_enum_add_alias(attr_option_request, child->name, &value, true, false) < 0) {
+                       return -1;
+               }
+       }
+
        instance_count++;
 
        return 0;