junoser 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -1
- data/Gemfile.lock +1 -1
- data/Rakefile +10 -1
- data/example/mx-19.3R3-S1.3.rb +161 -297
- data/example/vsrx-18.3R1.9.rb +1305 -1305
- data/lib/junoser/parser.rb +170 -306
- data/lib/junoser/ruler.rb +8 -0
- data/lib/junoser/version.rb +1 -1
- data/lib/junoser/xsd/base.rb +4 -2
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f37eb9172418859fd2a4144cdd0d4b47c657162e02117cfb9fe73a33fe9ca0e2
         | 
| 4 | 
            +
              data.tar.gz: 4791fbaf136985e1b16a4dba7daaf2fc2dbcee8ed85508d2e3c65b5b3f4575b9
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5961c24e760831bf52f6edb82c5972aefb023d99639091fb2c12d95f083ef57e9e2703fd441dbb0c1d5e44b5e386834679e910873e44825c9a7c103243fa2c6c
         | 
| 7 | 
            +
              data.tar.gz: 9e41dcfb72bfe2f5b801506c50725a4a0da2f56a09a8ddeedb8cb7d4b8ae82864008c89cdf2da837ced1c83d39d2e7d53640bba5f7dcb459d434e0d173862659
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,18 @@ | |
| 1 | 
            +
            ## [0.4.2] - 2021-08-30
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ### Added
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            * Newly supported syntax
         | 
| 6 | 
            +
              * "virtual-chassis vcp-snmp-statistics"
         | 
| 7 | 
            +
              * "application_object"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ### Fixed
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            * Keywords "tls", "group", "dest-nat-rule-match", "src-nat-rule-match", and "static-nat-rule-match" might be marked as invalid in some hierarchies
         | 
| 12 | 
            +
            * "applications application xxx term xxx"
         | 
| 13 | 
            +
            * "security"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
             | 
| 1 16 | 
             
            ## [0.4.1] - 2021-06-06
         | 
| 2 17 |  | 
| 3 18 | 
             
            ### Added
         | 
| @@ -7,7 +22,7 @@ | |
| 7 22 |  | 
| 8 23 | 
             
            ### Fixed
         | 
| 9 24 |  | 
| 10 | 
            -
            * "scpf-link", "https", "inet6", "icmp6", "icmpv6", "ospf3", and "snmptrap"  | 
| 25 | 
            +
            * Keywords "scpf-link", "https", "inet6", "icmp6", "icmpv6", "ospf3", and "snmptrap" might be marked as invalid in some hierarchies
         | 
| 11 26 | 
             
            * "policy-options community xxx members"
         | 
| 12 27 | 
             
            * "policy-options route-distinguisher xxx members"
         | 
| 13 28 | 
             
            * "routing-options confederation members"
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | @@ -19,12 +19,22 @@ def open_files(input, output, &block) | |
| 19 19 | 
             
              o.close
         | 
| 20 20 | 
             
            end
         | 
| 21 21 |  | 
| 22 | 
            +
            def move_wildcards(element)
         | 
| 23 | 
            +
              ['ipaddr', 'ipv6addr', 'ipprefix'].each do |pattern|
         | 
| 24 | 
            +
                element.xpath(%[.//xsd:element[@type="#{pattern}"]/xsd:annotation/xsd:appinfo/flag[text()="nokeyword"]/../../..]).each do |wildcard|
         | 
| 25 | 
            +
                  parent = wildcard.parent
         | 
| 26 | 
            +
                  removed = wildcard.remove
         | 
| 27 | 
            +
                  parent << removed
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
            end
         | 
| 22 31 |  | 
| 23 32 | 
             
            namespace :build do
         | 
| 24 33 | 
             
              desc 'Build an intermediate config hierarchy'
         | 
| 25 34 | 
             
              task :config do
         | 
| 26 35 | 
             
                open_files(xsd_path, rule_path) do |input, output|
         | 
| 27 36 | 
             
                  Nokogiri::XML(input).root.remove_unused.xpath('/xsd:schema/*').each do |e|
         | 
| 37 | 
            +
                    move_wildcards e # Move wildcard elements to the end of siblings as they capture keywords unexpectedly
         | 
| 28 38 | 
             
                    output.puts e.to_config
         | 
| 29 39 | 
             
                  end
         | 
| 30 40 | 
             
                end
         | 
| @@ -56,7 +66,6 @@ task 'find-srx-methods' do | |
| 56 66 | 
             
              end
         | 
| 57 67 | 
             
            end
         | 
| 58 68 |  | 
| 59 | 
            -
             | 
| 60 69 | 
             
            Rake::TestTask.new do |t|
         | 
| 61 70 | 
             
              t.libs << 'test'
         | 
| 62 71 |  | 
    
        data/example/mx-19.3R3-S1.3.rb
    CHANGED
    
    | @@ -1996,10 +1996,10 @@ rule(:configuration) do | |
| 1996 1996 | 
             
                                                              ),
         | 
| 1997 1997 | 
             
                                                              "wildcard-address" (  /* IP wildcard address and mask */
         | 
| 1998 1998 | 
             
                                                                  sc(
         | 
| 1999 | 
            -
                                                                        ipaddr  /* IP wildcard address */,
         | 
| 2000 1999 | 
             
                                                                      "wildcard-mask" (  /* IP wildcard address mask */
         | 
| 2001 2000 | 
             
                                                                        ipaddr  /* IP wildcard address mask */
         | 
| 2002 | 
            -
                                                                      )
         | 
| 2001 | 
            +
                                                                      ),
         | 
| 2002 | 
            +
                                                                        ipaddr  /* IP wildcard address */
         | 
| 2003 2003 | 
             
                                                                  )
         | 
| 2004 2004 | 
             
                                                              ).as(:oneline),
         | 
| 2005 2005 | 
             
                                                              "port-range" (  /* IP port ranges */
         | 
| @@ -2017,10 +2017,10 @@ rule(:configuration) do | |
| 2017 2017 | 
             
                                                              ),
         | 
| 2018 2018 | 
             
                                                              "wildcard-address" (  /* IP wildcard address and mask */
         | 
| 2019 2019 | 
             
                                                                  sc(
         | 
| 2020 | 
            -
                                                                        ipaddr  /* IP wildcard address */,
         | 
| 2021 2020 | 
             
                                                                      "wildcard-mask" (  /* IP wildcard address mask */
         | 
| 2022 2021 | 
             
                                                                        ipaddr  /* IP wildcard address mask */
         | 
| 2023 | 
            -
                                                                      )
         | 
| 2022 | 
            +
                                                                      ),
         | 
| 2023 | 
            +
                                                                        ipaddr  /* IP wildcard address */
         | 
| 2024 2024 | 
             
                                                                  )
         | 
| 2025 2025 | 
             
                                                              ).as(:oneline),
         | 
| 2026 2026 | 
             
                                                              "port-range" (  /* IP port ranges */
         | 
| @@ -5912,34 +5912,34 @@ rule(:configuration) do | |
| 5912 5912 | 
             
                                                          c(
         | 
| 5913 5913 | 
             
                                                              "source-ip" (  /* Filter based on source-ip (and wildcard) */
         | 
| 5914 5914 | 
             
                                                                  sc(
         | 
| 5915 | 
            -
                                                                        ipaddr  /* Source IP */,
         | 
| 5916 5915 | 
             
                                                                      "wildcard" (  /* Source IP wildcard */
         | 
| 5917 5916 | 
             
                                                                        ipaddr  /* Source IP wildcard */
         | 
| 5918 | 
            -
                                                                      )
         | 
| 5917 | 
            +
                                                                      ),
         | 
| 5918 | 
            +
                                                                        ipaddr  /* Source IP */
         | 
| 5919 5919 | 
             
                                                                  )
         | 
| 5920 5920 | 
             
                                                              ).as(:oneline),
         | 
| 5921 5921 | 
             
                                                              "dest-ip" (  /* Filter based on dest-ip (and wildcard) */
         | 
| 5922 5922 | 
             
                                                                  sc(
         | 
| 5923 | 
            -
                                                                        ipaddr  /* Dest IP */,
         | 
| 5924 5923 | 
             
                                                                      "wildcard" (  /* Dest IP wildcard */
         | 
| 5925 5924 | 
             
                                                                        ipaddr  /* Dest IP wildcard */
         | 
| 5926 | 
            -
                                                                      )
         | 
| 5925 | 
            +
                                                                      ),
         | 
| 5926 | 
            +
                                                                        ipaddr  /* Dest IP */
         | 
| 5927 5927 | 
             
                                                                  )
         | 
| 5928 5928 | 
             
                                                              ).as(:oneline),
         | 
| 5929 5929 | 
             
                                                              "sw-sip" (  /* Filter based on source softwire ip (and wildcard) */
         | 
| 5930 5930 | 
             
                                                                  sc(
         | 
| 5931 | 
            -
                                                                        ipv6addr  /* Source softwire IP */,
         | 
| 5932 5931 | 
             
                                                                      "wildcard" (  /* Source IP wildcard */
         | 
| 5933 5932 | 
             
                                                                        ipv6addr  /* Source IP wildcard */
         | 
| 5934 | 
            -
                                                                      )
         | 
| 5933 | 
            +
                                                                      ),
         | 
| 5934 | 
            +
                                                                        ipv6addr  /* Source softwire IP */
         | 
| 5935 5935 | 
             
                                                                  )
         | 
| 5936 5936 | 
             
                                                              ).as(:oneline),
         | 
| 5937 5937 | 
             
                                                              "sw-dip" (  /* Filter based on destination softwire ip (and wildcard) */
         | 
| 5938 5938 | 
             
                                                                  sc(
         | 
| 5939 | 
            -
                                                                        ipaddr  /* Destination softwire IP */,
         | 
| 5940 5939 | 
             
                                                                      "wildcard" (  /* Destination IP wildcard */
         | 
| 5941 5940 | 
             
                                                                        ipaddr  /* Destination IP wildcard */
         | 
| 5942 | 
            -
                                                                      )
         | 
| 5941 | 
            +
                                                                      ),
         | 
| 5942 | 
            +
                                                                        ipaddr  /* Destination softwire IP */
         | 
| 5943 5943 | 
             
                                                                  )
         | 
| 5944 5944 | 
             
                                                              ).as(:oneline),
         | 
| 5945 5945 | 
             
                                                              "sport-range" (  /* Filter based on source port */
         | 
| @@ -10594,7 +10594,8 @@ rule(:configuration) do | |
| 10594 10594 | 
             
                                "no-auto-conversion"  /* Disable automatic VC port conversion */,
         | 
| 10595 10595 | 
             
                                "auto-conversion"  /* Enable automatic VC port conversion */
         | 
| 10596 10596 | 
             
                              ),
         | 
| 10597 | 
            -
                              "vcp-no-hold-time"  /* Set no hold time for vcp interfaces  | 
| 10597 | 
            +
                              "vcp-no-hold-time"  /* Set no hold time for vcp interfaces */,
         | 
| 10598 | 
            +
                              "vcp-snmp-statistics"
         | 
| 10598 10599 | 
             
                          )
         | 
| 10599 10600 | 
             
                      ),
         | 
| 10600 10601 | 
             
                      "ethernet-switching-options" (
         | 
| @@ -17879,53 +17880,6 @@ rule(:any_template) do | |
| 17879 17880 | 
             
              )
         | 
| 17880 17881 | 
             
            end
         | 
| 17881 17882 |  | 
| 17882 | 
            -
            rule(:application_object) do
         | 
| 17883 | 
            -
              arg.as(:arg) (
         | 
| 17884 | 
            -
                c(
         | 
| 17885 | 
            -
                    "application-protocol" (  /* Application protocol type */
         | 
| 17886 | 
            -
                      ("bootp" | "dce-rpc" | "dce-rpc-portmap" | "dns" | "exec" | "ftp" | "ftp-data" | "gprs-gtp-c" | "gprs-gtp-u" | "gprs-gtp-v0" | "gprs-sctp" | "h323" | "icmp" | "icmpv6" | "ignore" | "iiop" | "ike-esp-nat" | "ip" | "login" | "mgcp-ca" | "mgcp-ua" | "ms-rpc" | "netbios" | "netshow" | "none" | "pptp" | "q931" | "ras" | "realaudio" | "rpc" | "rpc-portmap" | "rsh" | "rtsp" | "sccp" | "sip" | "shell" | "snmp" | "sqlnet" | "sqlnet-v2" | "sun-rpc" | "talk" | "tftp" | "traceroute" | "http" | "winframe" | "https" | "imap" | "smtp" | "ssh" | "telnet" | "twamp")
         | 
| 17887 | 
            -
                    ),
         | 
| 17888 | 
            -
                    "protocol" (  /* Match IP protocol type */
         | 
| 17889 | 
            -
                      ("icmp" | "igmp" | "ipip" | "tcp" | "egp" | "udp" | "rsvp" | "gre" | "esp" | "ah" | "icmp6" | "ospf" | "pim" | "sctp" | arg)
         | 
| 17890 | 
            -
                    ),
         | 
| 17891 | 
            -
                    "source-port" (  /* Match TCP/UDP source port */
         | 
| 17892 | 
            -
                      ("ftp-data" | "ftp" | "ssh" | "telnet" | "smtp" | "tacacs" | "tacacs-ds" | "domain" | "dhcp" | "bootps" | "bootpc" | "tftp" | "finger" | "http" | "kerberos-sec" | "pop3" | "sunrpc" | "ident" | "nntp" | "ntp" | "netbios-ns" | "netbios-dgm" | "netbios-ssn" | "imap" | "snmp" | "snmptrap" | "xdmcp" | "bgp" | "ldap" | "mobileip-agent" | "mobilip-mn" | "msdp" | "https" | "snpp" | "biff" | "exec" | "login" | "who" | "cmd" | "syslog" | "printer" | "talk" | "ntalk" | "rip" | "timed" | "klogin" | "kshell" | "ldp" | "krb-prop" | "krbupdate" | "kpasswd" | "socks" | "afs" | "pptp" | "radius" | "radacct" | "zephyr-srv" | "zephyr-clt" | "zephyr-hm" | "nfsd" | "eklogin" | "ekshell" | "rkinit" | "cvspserver" | arg)
         | 
| 17893 | 
            -
                    ),
         | 
| 17894 | 
            -
                    "destination-port" (  /* Match TCP/UDP destination port */
         | 
| 17895 | 
            -
                      ("ftp-data" | "ftp" | "ssh" | "telnet" | "smtp" | "tacacs" | "tacacs-ds" | "domain" | "dhcp" | "bootps" | "bootpc" | "tftp" | "finger" | "http" | "kerberos-sec" | "pop3" | "sunrpc" | "ident" | "nntp" | "ntp" | "netbios-ns" | "netbios-dgm" | "netbios-ssn" | "imap" | "snmp" | "snmptrap" | "xdmcp" | "bgp" | "ldap" | "mobileip-agent" | "mobilip-mn" | "msdp" | "https" | "snpp" | "biff" | "exec" | "login" | "who" | "cmd" | "syslog" | "printer" | "talk" | "ntalk" | "rip" | "timed" | "klogin" | "kshell" | "ldp" | "krb-prop" | "krbupdate" | "kpasswd" | "socks" | "afs" | "pptp" | "radius" | "radacct" | "zephyr-srv" | "zephyr-clt" | "zephyr-hm" | "nfsd" | "eklogin" | "ekshell" | "rkinit" | "cvspserver" | arg)
         | 
| 17896 | 
            -
                    ),
         | 
| 17897 | 
            -
                    "ether-type" arg  /* Match ether type */,
         | 
| 17898 | 
            -
                    "snmp-command" (  /* Match SNMP command */
         | 
| 17899 | 
            -
                      ("get" | "get-next" | "get-response" | "set" | "trap")
         | 
| 17900 | 
            -
                    ),
         | 
| 17901 | 
            -
                    "icmp-type" (  /* Match ICMP message type */
         | 
| 17902 | 
            -
                      ("echo-request" | "echo-reply" | "unreachable" | "source-quench" | "redirect" | "router-advertisement" | "router-solicit" | "time-exceeded" | "parameter-problem" | "timestamp" | "timestamp-reply" | "info-request" | "info-reply" | "mask-request" | "mask-reply" | arg)
         | 
| 17903 | 
            -
                    ),
         | 
| 17904 | 
            -
                    "icmp6-type" (  /* Match ICMP6 message type */
         | 
| 17905 | 
            -
                      ("echo-request" | "echo-reply" | "destination-unreachable" | "router-advertisement" | "router-solicit" | "time-exceeded" | "parameter-problem" | "packet-too-big" | "membership-query" | "membership-report" | "membership-termination" | "redirect" | "neighbor-solicit" | "neighbor-advertisement" | "router-renumbering" | "node-information-request" | "node-information-reply" | arg)
         | 
| 17906 | 
            -
                    ),
         | 
| 17907 | 
            -
                    "icmp-code" (  /* Match ICMP message code */
         | 
| 17908 | 
            -
                      ("network-unreachable" | "host-unreachable" | "protocol-unreachable" | "port-unreachable" | "fragmentation-needed" | "source-route-failed" | "destination-network-unknown" | "destination-host-unknown" | "source-host-isolated" | "destination-network-prohibited" | "destination-host-prohibited" | "network-unreachable-for-tos" | "host-unreachable-for-tos" | "communication-prohibited-by-filtering" | "host-precedence-violation" | "precedence-cutoff-in-effect" | "redirect-for-network" | "redirect-for-host" | "redirect-for-tos-and-net" | "redirect-for-tos-and-host" | "ttl-eq-zero-during-transit" | "ttl-eq-zero-during-reassembly" | "ip-header-bad" | "required-option-missing" | arg)
         | 
| 17909 | 
            -
                    ),
         | 
| 17910 | 
            -
                    "icmp6-code" (  /* Match ICMP6 message code */
         | 
| 17911 | 
            -
                      ("no-route-to-destination" | "administratively-prohibited" | "address-unreachable" | "port-unreachable" | "ttl-eq-zero-during-transit" | "ttl-eq-zero-during-reassembly" | "ip6-header-bad" | "unrecognized-next-header" | "unrecognized-option" | arg)
         | 
| 17912 | 
            -
                    ),
         | 
| 17913 | 
            -
                    "ttl-threshold" arg  /* Traceroute TTL threshold */,
         | 
| 17914 | 
            -
                    "rpc-program-number" arg  /* Match range of RPC program numbers */,
         | 
| 17915 | 
            -
                    "uuid" arg  /* Match universal unique identifier for DCE RPC objects */,
         | 
| 17916 | 
            -
                    "inactivity-timeout" (  /* Application-specific inactivity timeout */
         | 
| 17917 | 
            -
                      ("never" | arg)
         | 
| 17918 | 
            -
                    ),
         | 
| 17919 | 
            -
                    "gate-timeout" arg  /* Application-specific gate timeout */,
         | 
| 17920 | 
            -
                    "child-inactivity-timeout" arg  /* Application-specific child session inactivity timeout */,
         | 
| 17921 | 
            -
                    c(
         | 
| 17922 | 
            -
                      "do-not-translate-AAAA-query-to-A-query"  /* Knob to control the translation of AAAA query to A query */,
         | 
| 17923 | 
            -
                      "do-not-translate-A-query-to-AAAA-query"  /* Knob to control the translation of A query to AAAA query */
         | 
| 17924 | 
            -
                    )
         | 
| 17925 | 
            -
                )
         | 
| 17926 | 
            -
              )
         | 
| 17927 | 
            -
            end
         | 
| 17928 | 
            -
             | 
| 17929 17883 | 
             
            rule(:application_set_object) do
         | 
| 17930 17884 | 
             
              arg.as(:arg) (
         | 
| 17931 17885 | 
             
                c(
         | 
| @@ -28321,34 +28275,34 @@ rule(:interfaces_type) do | |
| 28321 28275 | 
             
                                        c(
         | 
| 28322 28276 | 
             
                                            "source-ip" (  /* Filter based on source-ip (and wildcard) */
         | 
| 28323 28277 | 
             
                                                sc(
         | 
| 28324 | 
            -
                                                      ipaddr  /* Source IP */,
         | 
| 28325 28278 | 
             
                                                    "wildcard" (  /* Source IP wildcard */
         | 
| 28326 28279 | 
             
                                                      ipaddr  /* Source IP wildcard */
         | 
| 28327 | 
            -
                                                    )
         | 
| 28280 | 
            +
                                                    ),
         | 
| 28281 | 
            +
                                                      ipaddr  /* Source IP */
         | 
| 28328 28282 | 
             
                                                )
         | 
| 28329 28283 | 
             
                                            ).as(:oneline),
         | 
| 28330 28284 | 
             
                                            "dest-ip" (  /* Filter based on dest-ip (and wildcard) */
         | 
| 28331 28285 | 
             
                                                sc(
         | 
| 28332 | 
            -
                                                      ipaddr  /* Dest IP */,
         | 
| 28333 28286 | 
             
                                                    "wildcard" (  /* Dest IP wildcard */
         | 
| 28334 28287 | 
             
                                                      ipaddr  /* Dest IP wildcard */
         | 
| 28335 | 
            -
                                                    )
         | 
| 28288 | 
            +
                                                    ),
         | 
| 28289 | 
            +
                                                      ipaddr  /* Dest IP */
         | 
| 28336 28290 | 
             
                                                )
         | 
| 28337 28291 | 
             
                                            ).as(:oneline),
         | 
| 28338 28292 | 
             
                                            "sw-sip" (  /* Filter based on source softwire ip (and wildcard) */
         | 
| 28339 28293 | 
             
                                                sc(
         | 
| 28340 | 
            -
                                                      ipv6addr  /* Source softwire IP */,
         | 
| 28341 28294 | 
             
                                                    "wildcard" (  /* Source IP wildcard */
         | 
| 28342 28295 | 
             
                                                      ipv6addr  /* Source IP wildcard */
         | 
| 28343 | 
            -
                                                    )
         | 
| 28296 | 
            +
                                                    ),
         | 
| 28297 | 
            +
                                                      ipv6addr  /* Source softwire IP */
         | 
| 28344 28298 | 
             
                                                )
         | 
| 28345 28299 | 
             
                                            ).as(:oneline),
         | 
| 28346 28300 | 
             
                                            "sw-dip" (  /* Filter based on destination softwire ip (and wildcard) */
         | 
| 28347 28301 | 
             
                                                sc(
         | 
| 28348 | 
            -
                                                      ipaddr  /* Destination softwire IP */,
         | 
| 28349 28302 | 
             
                                                    "wildcard" (  /* Destination IP wildcard */
         | 
| 28350 28303 | 
             
                                                      ipaddr  /* Destination IP wildcard */
         | 
| 28351 | 
            -
                                                    )
         | 
| 28304 | 
            +
                                                    ),
         | 
| 28305 | 
            +
                                                      ipaddr  /* Destination softwire IP */
         | 
| 28352 28306 | 
             
                                                )
         | 
| 28353 28307 | 
             
                                            ).as(:oneline),
         | 
| 28354 28308 | 
             
                                            "sport-range" (  /* Filter based on source port */
         | 
| @@ -43766,34 +43720,34 @@ rule(:juniper_dynamic_profile_object) do | |
| 43766 43720 | 
             
                                                        c(
         | 
| 43767 43721 | 
             
                                                            "source-ip" (  /* Filter based on source-ip (and wildcard) */
         | 
| 43768 43722 | 
             
                                                                sc(
         | 
| 43769 | 
            -
                                                                      ipaddr  /* Source IP */,
         | 
| 43770 43723 | 
             
                                                                    "wildcard" (  /* Source IP wildcard */
         | 
| 43771 43724 | 
             
                                                                      ipaddr  /* Source IP wildcard */
         | 
| 43772 | 
            -
                                                                    )
         | 
| 43725 | 
            +
                                                                    ),
         | 
| 43726 | 
            +
                                                                      ipaddr  /* Source IP */
         | 
| 43773 43727 | 
             
                                                                )
         | 
| 43774 43728 | 
             
                                                            ).as(:oneline),
         | 
| 43775 43729 | 
             
                                                            "dest-ip" (  /* Filter based on dest-ip (and wildcard) */
         | 
| 43776 43730 | 
             
                                                                sc(
         | 
| 43777 | 
            -
                                                                      ipaddr  /* Dest IP */,
         | 
| 43778 43731 | 
             
                                                                    "wildcard" (  /* Dest IP wildcard */
         | 
| 43779 43732 | 
             
                                                                      ipaddr  /* Dest IP wildcard */
         | 
| 43780 | 
            -
                                                                    )
         | 
| 43733 | 
            +
                                                                    ),
         | 
| 43734 | 
            +
                                                                      ipaddr  /* Dest IP */
         | 
| 43781 43735 | 
             
                                                                )
         | 
| 43782 43736 | 
             
                                                            ).as(:oneline),
         | 
| 43783 43737 | 
             
                                                            "sw-sip" (  /* Filter based on source softwire ip (and wildcard) */
         | 
| 43784 43738 | 
             
                                                                sc(
         | 
| 43785 | 
            -
                                                                      ipv6addr  /* Source softwire IP */,
         | 
| 43786 43739 | 
             
                                                                    "wildcard" (  /* Source IP wildcard */
         | 
| 43787 43740 | 
             
                                                                      ipv6addr  /* Source IP wildcard */
         | 
| 43788 | 
            -
                                                                    )
         | 
| 43741 | 
            +
                                                                    ),
         | 
| 43742 | 
            +
                                                                      ipv6addr  /* Source softwire IP */
         | 
| 43789 43743 | 
             
                                                                )
         | 
| 43790 43744 | 
             
                                                            ).as(:oneline),
         | 
| 43791 43745 | 
             
                                                            "sw-dip" (  /* Filter based on destination softwire ip (and wildcard) */
         | 
| 43792 43746 | 
             
                                                                sc(
         | 
| 43793 | 
            -
                                                                      ipaddr  /* Destination softwire IP */,
         | 
| 43794 43747 | 
             
                                                                    "wildcard" (  /* Destination IP wildcard */
         | 
| 43795 43748 | 
             
                                                                      ipaddr  /* Destination IP wildcard */
         | 
| 43796 | 
            -
                                                                    )
         | 
| 43749 | 
            +
                                                                    ),
         | 
| 43750 | 
            +
                                                                      ipaddr  /* Destination softwire IP */
         | 
| 43797 43751 | 
             
                                                                )
         | 
| 43798 43752 | 
             
                                                            ).as(:oneline),
         | 
| 43799 43753 | 
             
                                                            "sport-range" (  /* Filter based on source port */
         | 
| @@ -47223,34 +47177,34 @@ rule(:juniper_dynamic_profile_object) do | |
| 47223 47177 | 
             
                                                                c(
         | 
| 47224 47178 | 
             
                                                                    "source-ip" (  /* Filter based on source-ip (and wildcard) */
         | 
| 47225 47179 | 
             
                                                                        sc(
         | 
| 47226 | 
            -
                                                                              ipaddr  /* Source IP */,
         | 
| 47227 47180 | 
             
                                                                            "wildcard" (  /* Source IP wildcard */
         | 
| 47228 47181 | 
             
                                                                              ipaddr  /* Source IP wildcard */
         | 
| 47229 | 
            -
                                                                            )
         | 
| 47182 | 
            +
                                                                            ),
         | 
| 47183 | 
            +
                                                                              ipaddr  /* Source IP */
         | 
| 47230 47184 | 
             
                                                                        )
         | 
| 47231 47185 | 
             
                                                                    ).as(:oneline),
         | 
| 47232 47186 | 
             
                                                                    "dest-ip" (  /* Filter based on dest-ip (and wildcard) */
         | 
| 47233 47187 | 
             
                                                                        sc(
         | 
| 47234 | 
            -
                                                                              ipaddr  /* Dest IP */,
         | 
| 47235 47188 | 
             
                                                                            "wildcard" (  /* Dest IP wildcard */
         | 
| 47236 47189 | 
             
                                                                              ipaddr  /* Dest IP wildcard */
         | 
| 47237 | 
            -
                                                                            )
         | 
| 47190 | 
            +
                                                                            ),
         | 
| 47191 | 
            +
                                                                              ipaddr  /* Dest IP */
         | 
| 47238 47192 | 
             
                                                                        )
         | 
| 47239 47193 | 
             
                                                                    ).as(:oneline),
         | 
| 47240 47194 | 
             
                                                                    "sw-sip" (  /* Filter based on source softwire ip (and wildcard) */
         | 
| 47241 47195 | 
             
                                                                        sc(
         | 
| 47242 | 
            -
                                                                              ipv6addr  /* Source softwire IP */,
         | 
| 47243 47196 | 
             
                                                                            "wildcard" (  /* Source IP wildcard */
         | 
| 47244 47197 | 
             
                                                                              ipv6addr  /* Source IP wildcard */
         | 
| 47245 | 
            -
                                                                            )
         | 
| 47198 | 
            +
                                                                            ),
         | 
| 47199 | 
            +
                                                                              ipv6addr  /* Source softwire IP */
         | 
| 47246 47200 | 
             
                                                                        )
         | 
| 47247 47201 | 
             
                                                                    ).as(:oneline),
         | 
| 47248 47202 | 
             
                                                                    "sw-dip" (  /* Filter based on destination softwire ip (and wildcard) */
         | 
| 47249 47203 | 
             
                                                                        sc(
         | 
| 47250 | 
            -
                                                                              ipaddr  /* Destination softwire IP */,
         | 
| 47251 47204 | 
             
                                                                            "wildcard" (  /* Destination IP wildcard */
         | 
| 47252 47205 | 
             
                                                                              ipaddr  /* Destination IP wildcard */
         | 
| 47253 | 
            -
                                                                            )
         | 
| 47206 | 
            +
                                                                            ),
         | 
| 47207 | 
            +
                                                                              ipaddr  /* Destination softwire IP */
         | 
| 47254 47208 | 
             
                                                                        )
         | 
| 47255 47209 | 
             
                                                                    ).as(:oneline),
         | 
| 47256 47210 | 
             
                                                                    "sport-range" (  /* Filter based on source port */
         | 
| @@ -55337,10 +55291,10 @@ rule(:juniper_policy_options) do | |
| 55337 55291 | 
             
                                                    c(
         | 
| 55338 55292 | 
             
                                                      "self"  /* Use a local address as the next-hop address */,
         | 
| 55339 55293 | 
             
                                                      "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 55340 | 
            -
                                                        ipaddr  /* Next-hop address */,
         | 
| 55341 55294 | 
             
                                                      "reject"  /* Use a reject next hop */,
         | 
| 55342 55295 | 
             
                                                      "discard"  /* Use a discard next hop */,
         | 
| 55343 | 
            -
                                                      "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 55296 | 
            +
                                                      "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 55297 | 
            +
                                                        ipaddr  /* Next-hop address */
         | 
| 55344 55298 | 
             
                                                    )
         | 
| 55345 55299 | 
             
                                                )
         | 
| 55346 55300 | 
             
                                            ).as(:oneline),
         | 
| @@ -55948,10 +55902,10 @@ rule(:juniper_policy_options) do | |
| 55948 55902 | 
             
                                            c(
         | 
| 55949 55903 | 
             
                                              "self"  /* Use a local address as the next-hop address */,
         | 
| 55950 55904 | 
             
                                              "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 55951 | 
            -
                                                ipaddr  /* Next-hop address */,
         | 
| 55952 55905 | 
             
                                              "reject"  /* Use a reject next hop */,
         | 
| 55953 55906 | 
             
                                              "discard"  /* Use a discard next hop */,
         | 
| 55954 | 
            -
                                              "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 55907 | 
            +
                                              "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 55908 | 
            +
                                                ipaddr  /* Next-hop address */
         | 
| 55955 55909 | 
             
                                            )
         | 
| 55956 55910 | 
             
                                        )
         | 
| 55957 55911 | 
             
                                    ).as(:oneline),
         | 
| @@ -56163,8 +56117,8 @@ rule(:juniper_policy_options) do | |
| 56163 56117 | 
             
                                              c(
         | 
| 56164 56118 | 
             
                                                "inet" (  /* Route to match corresponds to an inet/inet6 prefix */
         | 
| 56165 56119 | 
             
                                                    c(
         | 
| 56166 | 
            -
             | 
| 56167 | 
            -
             | 
| 56120 | 
            +
                                                        "table" arg  /* Routing table in which route should exist */,
         | 
| 56121 | 
            +
                                                          ipprefix  /* Exact address of the route */
         | 
| 56168 56122 | 
             
                                                    )
         | 
| 56169 56123 | 
             
                                                ),
         | 
| 56170 56124 | 
             
                                                "ccc" (  /* Route to match corresponds to a ccc prefix */
         | 
| @@ -56178,8 +56132,8 @@ rule(:juniper_policy_options) do | |
| 56178 56132 | 
             
                                              )
         | 
| 56179 56133 | 
             
                                          )
         | 
| 56180 56134 | 
             
                                      ),
         | 
| 56181 | 
            -
             | 
| 56182 | 
            -
             | 
| 56135 | 
            +
                                      "table" arg  /* Routing table in which route should exist */,
         | 
| 56136 | 
            +
                                        ipprefix  /* Exact address of the route */
         | 
| 56183 56137 | 
             
                                  )
         | 
| 56184 56138 | 
             
                              )
         | 
| 56185 56139 | 
             
                            )
         | 
| @@ -56468,10 +56422,10 @@ rule(:control_prefix_list_filter_type) do | |
| 56468 56422 | 
             
                            c(
         | 
| 56469 56423 | 
             
                              "self"  /* Use a local address as the next-hop address */,
         | 
| 56470 56424 | 
             
                              "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 56471 | 
            -
                                ipaddr  /* Next-hop address */,
         | 
| 56472 56425 | 
             
                              "reject"  /* Use a reject next hop */,
         | 
| 56473 56426 | 
             
                              "discard"  /* Use a discard next hop */,
         | 
| 56474 | 
            -
                              "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 56427 | 
            +
                              "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 56428 | 
            +
                                ipaddr  /* Next-hop address */
         | 
| 56475 56429 | 
             
                            )
         | 
| 56476 56430 | 
             
                        )
         | 
| 56477 56431 | 
             
                    ).as(:oneline),
         | 
| @@ -56863,10 +56817,10 @@ rule(:control_route_filter_type) do | |
| 56863 56817 | 
             
                            c(
         | 
| 56864 56818 | 
             
                              "self"  /* Use a local address as the next-hop address */,
         | 
| 56865 56819 | 
             
                              "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 56866 | 
            -
                                ipaddr  /* Next-hop address */,
         | 
| 56867 56820 | 
             
                              "reject"  /* Use a reject next hop */,
         | 
| 56868 56821 | 
             
                              "discard"  /* Use a discard next hop */,
         | 
| 56869 | 
            -
                              "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 56822 | 
            +
                              "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 56823 | 
            +
                                ipaddr  /* Next-hop address */
         | 
| 56870 56824 | 
             
                            )
         | 
| 56871 56825 | 
             
                        )
         | 
| 56872 56826 | 
             
                    ).as(:oneline),
         | 
| @@ -57242,10 +57196,10 @@ rule(:control_source_address_filter_type) do | |
| 57242 57196 | 
             
                            c(
         | 
| 57243 57197 | 
             
                              "self"  /* Use a local address as the next-hop address */,
         | 
| 57244 57198 | 
             
                              "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 57245 | 
            -
                                ipaddr  /* Next-hop address */,
         | 
| 57246 57199 | 
             
                              "reject"  /* Use a reject next hop */,
         | 
| 57247 57200 | 
             
                              "discard"  /* Use a discard next hop */,
         | 
| 57248 | 
            -
                              "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 57201 | 
            +
                              "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 57202 | 
            +
                                ipaddr  /* Next-hop address */
         | 
| 57249 57203 | 
             
                            )
         | 
| 57250 57204 | 
             
                        )
         | 
| 57251 57205 | 
             
                    ).as(:oneline),
         | 
| @@ -77513,9 +77467,9 @@ rule(:juniper_system) do | |
| 77513 77467 | 
             
                    ).as(:oneline),
         | 
| 77514 77468 | 
             
                    "inet6-backup-router" (  /* IPv6 router to use while booting */
         | 
| 77515 77469 | 
             
                        sc(
         | 
| 77516 | 
            -
                              ipv6addr  /* Address of router to use while booting */,
         | 
| 77517 77470 | 
             
                            "destination" (  /* Destination network reachable through the router */
         | 
| 77518 | 
            -
                              ipv6prefix  /* Destination network reachable through the router  | 
| 77471 | 
            +
                              ipv6prefix  /* Destination network reachable through the router */,
         | 
| 77472 | 
            +
                              ipv6addr  /* Address of router to use while booting */
         | 
| 77519 77473 | 
             
                            )
         | 
| 77520 77474 | 
             
                        )
         | 
| 77521 77475 | 
             
                    ).as(:oneline),
         | 
| @@ -98364,14 +98318,6 @@ rule(:log_object) do | |
| 98364 98318 | 
             
                )
         | 
| 98365 98319 | 
             
            end
         | 
| 98366 98320 |  | 
| 98367 | 
            -
            rule(:logical_system_type) do
         | 
| 98368 | 
            -
              arg.as(:arg) (
         | 
| 98369 | 
            -
                c(
         | 
| 98370 | 
            -
                    "max-sessions" arg  /* Max number of IDP sessions */
         | 
| 98371 | 
            -
                )
         | 
| 98372 | 
            -
              )
         | 
| 98373 | 
            -
            end
         | 
| 98374 | 
            -
             | 
| 98375 98321 | 
             
            rule(:login_class_object) do
         | 
| 98376 98322 | 
             
              arg.as(:arg) (
         | 
| 98377 98323 | 
             
                c(
         | 
| @@ -101523,31 +101469,6 @@ rule(:nasreq_definition) do | |
| 101523 101469 | 
             
                )
         | 
| 101524 101470 | 
             
            end
         | 
| 101525 101471 |  | 
| 101526 | 
            -
            rule(:nat_object) do
         | 
| 101527 | 
            -
                c(
         | 
| 101528 | 
            -
                    "pool" (  /* Define a NAT pool */
         | 
| 101529 | 
            -
                      nat_pool_object  /* Define a NAT pool */
         | 
| 101530 | 
            -
                    ),
         | 
| 101531 | 
            -
                    "ipv6-multicast-interfaces" ("all" | "interface-name") (  /* Enable IPv6 multicast filter for IPv6 NAT */
         | 
| 101532 | 
            -
                        c(
         | 
| 101533 | 
            -
                            "disable"  /* Disable IPv6 multicast filter for IPv6 NAT */
         | 
| 101534 | 
            -
                        )
         | 
| 101535 | 
            -
                    ),
         | 
| 101536 | 
            -
                    "allow-overlapping-nat-pools"  /* Allow usage of overlapping and same nat pools in multiple service sets */,
         | 
| 101537 | 
            -
                    "rule" (  /* Define a NAT rule */
         | 
| 101538 | 
            -
                      nat_rule_object  /* Define a NAT rule */
         | 
| 101539 | 
            -
                    ),
         | 
| 101540 | 
            -
                    "port-forwarding" (  /* Define a port-forwarding pool */
         | 
| 101541 | 
            -
                      pf_mapping  /* Define a port-forwarding pool */
         | 
| 101542 | 
            -
                    ),
         | 
| 101543 | 
            -
                    "rule-set" arg (  /* Defines a set of NAT rules */
         | 
| 101544 | 
            -
                        c(
         | 
| 101545 | 
            -
                            "rule" arg  /* Rule to be included in this rule set */
         | 
| 101546 | 
            -
                        )
         | 
| 101547 | 
            -
                    )
         | 
| 101548 | 
            -
                )
         | 
| 101549 | 
            -
            end
         | 
| 101550 | 
            -
             | 
| 101551 101472 | 
             
            rule(:nat_pool_object) do
         | 
| 101552 101473 | 
             
              arg.as(:arg) (
         | 
| 101553 101474 | 
             
                c(
         | 
| @@ -105285,10 +105206,10 @@ rule(:route_filter_list_items) do | |
| 105285 105206 | 
             
                            c(
         | 
| 105286 105207 | 
             
                              "self"  /* Use a local address as the next-hop address */,
         | 
| 105287 105208 | 
             
                              "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 105288 | 
            -
                                ipaddr  /* Next-hop address */,
         | 
| 105289 105209 | 
             
                              "reject"  /* Use a reject next hop */,
         | 
| 105290 105210 | 
             
                              "discard"  /* Use a discard next hop */,
         | 
| 105291 | 
            -
                              "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 105211 | 
            +
                              "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 105212 | 
            +
                                ipaddr  /* Next-hop address */
         | 
| 105292 105213 | 
             
                            )
         | 
| 105293 105214 | 
             
                        )
         | 
| 105294 105215 | 
             
                    ).as(:oneline),
         | 
| @@ -105552,11 +105473,11 @@ end | |
| 105552 105473 |  | 
| 105553 105474 | 
             
            rule(:routing_destination_address) do
         | 
| 105554 105475 | 
             
                c(
         | 
| 105555 | 
            -
                      ipaddr  /* IP address */,
         | 
| 105556 105476 | 
             
                    "port" arg  /* Port number */,
         | 
| 105557 105477 | 
             
                    "transport-protocol" (  /* Transport protocol */
         | 
| 105558 105478 | 
             
                      transport_protocol  /* Transport protocol */
         | 
| 105559 | 
            -
                    )
         | 
| 105479 | 
            +
                    ),
         | 
| 105480 | 
            +
                      ipaddr  /* IP address */
         | 
| 105560 105481 | 
             
                ).as(:oneline)
         | 
| 105561 105482 | 
             
            end
         | 
| 105562 105483 |  | 
| @@ -107412,12 +107333,6 @@ rule(:ipsec_sa) do | |
| 107412 107333 | 
             
              )
         | 
| 107413 107334 | 
             
            end
         | 
| 107414 107335 |  | 
| 107415 | 
            -
            rule(:ipsec_traceoptions) do
         | 
| 107416 | 
            -
                c(
         | 
| 107417 | 
            -
                    "flag" enum(("packet-processing" | "packet-drops" | "security-associations" | "next-hop-tunnel-binding" | "all"))  /* Events to include in data-plane IPSec trace output */.as(:oneline)
         | 
| 107418 | 
            -
                )
         | 
| 107419 | 
            -
            end
         | 
| 107420 | 
            -
             | 
| 107421 107336 | 
             
            rule(:ipsec_trusted_channel_sa) do
         | 
| 107422 107337 | 
             
                c(
         | 
| 107423 107338 | 
             
                    "description" arg  /* Text description of trusted channel security association */,
         | 
| @@ -107467,114 +107382,6 @@ rule(:ipsec_trusted_channel_sa) do | |
| 107467 107382 | 
             
                )
         | 
| 107468 107383 | 
             
            end
         | 
| 107469 107384 |  | 
| 107470 | 
            -
            rule(:ipsec_vpn_monitor) do
         | 
| 107471 | 
            -
                c(
         | 
| 107472 | 
            -
                    "interval" arg  /* Monitor interval in seconds */,
         | 
| 107473 | 
            -
                    "threshold" arg  /* Number of consecutive failures to determine connectivity */
         | 
| 107474 | 
            -
                )
         | 
| 107475 | 
            -
            end
         | 
| 107476 | 
            -
             | 
| 107477 | 
            -
            rule(:ipsec_vpn_template) do
         | 
| 107478 | 
            -
              arg.as(:arg) (
         | 
| 107479 | 
            -
                c(
         | 
| 107480 | 
            -
                    "bind-interface" (  /* Bind to tunnel interface (route-based VPN) */
         | 
| 107481 | 
            -
                      interface_name  /* Bind to tunnel interface (route-based VPN) */
         | 
| 107482 | 
            -
                    ),
         | 
| 107483 | 
            -
                    "df-bit" (  /* Specifies how to handle the Don't Fragment bit */
         | 
| 107484 | 
            -
                      ("clear" | "set" | "copy")
         | 
| 107485 | 
            -
                    ),
         | 
| 107486 | 
            -
                    "vpn-monitor" (  /* Monitor VPN liveliness */
         | 
| 107487 | 
            -
                      ipsec_template_monitor  /* Monitor VPN liveliness */
         | 
| 107488 | 
            -
                    ),
         | 
| 107489 | 
            -
                    c(
         | 
| 107490 | 
            -
                      "manual" (  /* Define a manual security association */
         | 
| 107491 | 
            -
                          c(
         | 
| 107492 | 
            -
                              "gateway" (  /* Define the IPSec peer */
         | 
| 107493 | 
            -
                                hostname  /* Define the IPSec peer */
         | 
| 107494 | 
            -
                              ),
         | 
| 107495 | 
            -
                              "external-interface" (  /* External interface for the security association */
         | 
| 107496 | 
            -
                                interface_unit  /* External interface for the security association */
         | 
| 107497 | 
            -
                              ),
         | 
| 107498 | 
            -
                              "protocol" (  /* Define an IPSec protocol for the security association */
         | 
| 107499 | 
            -
                                ("ah" | "esp")
         | 
| 107500 | 
            -
                              ),
         | 
| 107501 | 
            -
                              "spi" arg  /* Define security parameter index */,
         | 
| 107502 | 
            -
                              "authentication" (  /* Define authentication parameters */
         | 
| 107503 | 
            -
                                  c(
         | 
| 107504 | 
            -
                                      "algorithm" (  /* Define authentication algorithm */
         | 
| 107505 | 
            -
                                        ("hmac-md5-96" | "hmac-sha1-96" | "hmac-sha-256-128" | "hmac-sha-256-96")
         | 
| 107506 | 
            -
                                      ),
         | 
| 107507 | 
            -
                                      "key" (  /* Define an authentication key */
         | 
| 107508 | 
            -
                                          sc(
         | 
| 107509 | 
            -
                                              c(
         | 
| 107510 | 
            -
                                                "ascii-text" arg  /* Format as text */,
         | 
| 107511 | 
            -
                                                "hexadecimal" arg  /* Format as hexadecimal */
         | 
| 107512 | 
            -
                                              )
         | 
| 107513 | 
            -
                                          )
         | 
| 107514 | 
            -
                                      ).as(:oneline)
         | 
| 107515 | 
            -
                                  )
         | 
| 107516 | 
            -
                              ),
         | 
| 107517 | 
            -
                              "encryption" (  /* Define encryption parameters */
         | 
| 107518 | 
            -
                                  c(
         | 
| 107519 | 
            -
                                      "algorithm" (  /* Define encryption algorithm */
         | 
| 107520 | 
            -
                                        ("des-cbc" | "3des-cbc" | "aes-128-cbc" | "aes-192-cbc" | "aes-256-cbc")
         | 
| 107521 | 
            -
                                      ),
         | 
| 107522 | 
            -
                                      "key" (  /* Define an encryption key */
         | 
| 107523 | 
            -
                                          sc(
         | 
| 107524 | 
            -
                                              c(
         | 
| 107525 | 
            -
                                                "ascii-text" arg  /* Format as text */,
         | 
| 107526 | 
            -
                                                "hexadecimal" arg  /* Format as hexadecimal */
         | 
| 107527 | 
            -
                                              )
         | 
| 107528 | 
            -
                                          )
         | 
| 107529 | 
            -
                                      ).as(:oneline)
         | 
| 107530 | 
            -
                                  )
         | 
| 107531 | 
            -
                              )
         | 
| 107532 | 
            -
                          )
         | 
| 107533 | 
            -
                      ),
         | 
| 107534 | 
            -
                      "ike" (  /* Define an IKE-keyed IPSec vpn */
         | 
| 107535 | 
            -
                          c(
         | 
| 107536 | 
            -
                              "gateway" arg  /* Name of remote gateway */,
         | 
| 107537 | 
            -
                              "idle-time" arg  /* Idle time to delete SA */,
         | 
| 107538 | 
            -
                              "no-anti-replay"  /* Disable the anti-replay check */,
         | 
| 107539 | 
            -
                              "proxy-identity" (  /* IPSec proxy-id to use in IKE negotiations */
         | 
| 107540 | 
            -
                                ipsec_template_proxy_id  /* IPSec proxy-id to use in IKE negotiations */
         | 
| 107541 | 
            -
                              ),
         | 
| 107542 | 
            -
                              "ipsec-policy" arg  /* Name of the IPSec policy */,
         | 
| 107543 | 
            -
                              "install-interval" arg  /* Delay installation of rekeyed outbound SAs on initiator */
         | 
| 107544 | 
            -
                          )
         | 
| 107545 | 
            -
                      )
         | 
| 107546 | 
            -
                    ),
         | 
| 107547 | 
            -
                    "establish-tunnels" (  /* Define the criteria to establish tunnels */
         | 
| 107548 | 
            -
                      ("immediately" | "on-traffic")
         | 
| 107549 | 
            -
                    )
         | 
| 107550 | 
            -
                )
         | 
| 107551 | 
            -
              )
         | 
| 107552 | 
            -
            end
         | 
| 107553 | 
            -
             | 
| 107554 | 
            -
            rule(:ipsec_template_monitor) do
         | 
| 107555 | 
            -
                c(
         | 
| 107556 | 
            -
                    "optimized"  /* Optimize for scalability */,
         | 
| 107557 | 
            -
                    "source-interface" (  /* Source interface for monitor message */
         | 
| 107558 | 
            -
                      interface_unit  /* Source interface for monitor message */
         | 
| 107559 | 
            -
                    ),
         | 
| 107560 | 
            -
                    "destination-ip" (  /* Destination IP addres for monitor message */
         | 
| 107561 | 
            -
                      ipaddr  /* Destination IP addres for monitor message */
         | 
| 107562 | 
            -
                    )
         | 
| 107563 | 
            -
                )
         | 
| 107564 | 
            -
            end
         | 
| 107565 | 
            -
             | 
| 107566 | 
            -
            rule(:ipsec_template_proxy_id) do
         | 
| 107567 | 
            -
                c(
         | 
| 107568 | 
            -
                    "local" (  /* Local IP address/prefix length */
         | 
| 107569 | 
            -
                      ipprefix_mandatory  /* Local IP address/prefix length */
         | 
| 107570 | 
            -
                    ),
         | 
| 107571 | 
            -
                    "remote" (  /* Remote IP address/prefix length */
         | 
| 107572 | 
            -
                      ipprefix_mandatory  /* Remote IP address/prefix length */
         | 
| 107573 | 
            -
                    ),
         | 
| 107574 | 
            -
                    "service" arg  /* Name of serivce that passes through, any enables all services */
         | 
| 107575 | 
            -
                )
         | 
| 107576 | 
            -
            end
         | 
| 107577 | 
            -
             | 
| 107578 107385 | 
             
            rule(:security_macsec) do
         | 
| 107579 107386 | 
             
                c(
         | 
| 107580 107387 | 
             
                    "traceoptions" (  /* Tracing options for debugging protocol operation */
         | 
| @@ -108138,14 +107945,14 @@ rule(:service_set_ipsec_vpn_options_object) do | |
| 108138 107945 | 
             
                    "trusted-ca" arg  /* List of trusted certificate authority profiles */,
         | 
| 108139 107946 | 
             
                    "local-gateway" (  /* Address and routing instance for local gateway */
         | 
| 108140 107947 | 
             
                        sc(
         | 
| 108141 | 
            -
                              ipaddr  /* Local gateway address */,
         | 
| 108142 107948 | 
             
                            "routing-instance" arg  /* Name of routing instance that hosts local gateway */,
         | 
| 108143 107949 | 
             
                            "interface" (  /* Interface as local gateway */
         | 
| 108144 107950 | 
             
                              interface_unit  /* Interface as local gateway */
         | 
| 108145 107951 | 
             
                            ),
         | 
| 108146 107952 | 
             
                            "gw-interface" (  /* Interface as local gateway */
         | 
| 108147 107953 | 
             
                              interface_unit  /* Interface as local gateway */
         | 
| 108148 | 
            -
                            )
         | 
| 107954 | 
            +
                            ),
         | 
| 107955 | 
            +
                              ipaddr  /* Local gateway address */
         | 
| 108149 107956 | 
             
                        )
         | 
| 108150 107957 | 
             
                    ).as(:oneline),
         | 
| 108151 107958 | 
             
                    "ike-access-profile" arg  /* IKE access profile for dynamic peers */,
         | 
| @@ -109942,10 +109749,10 @@ rule(:source_address_filter_list_items) do | |
| 109942 109749 | 
             
                            c(
         | 
| 109943 109750 | 
             
                              "self"  /* Use a local address as the next-hop address */,
         | 
| 109944 109751 | 
             
                              "peer-address"  /* Use the remote peer address as the next-hop address */,
         | 
| 109945 | 
            -
                                ipaddr  /* Next-hop address */,
         | 
| 109946 109752 | 
             
                              "reject"  /* Use a reject next hop */,
         | 
| 109947 109753 | 
             
                              "discard"  /* Use a discard next hop */,
         | 
| 109948 | 
            -
                              "next-table" arg  /* Perform a forwarding lookup in the specified table  | 
| 109754 | 
            +
                              "next-table" arg  /* Perform a forwarding lookup in the specified table */,
         | 
| 109755 | 
            +
                                ipaddr  /* Next-hop address */
         | 
| 109949 109756 | 
             
                            )
         | 
| 109950 109757 | 
             
                        )
         | 
| 109951 109758 | 
             
                    ).as(:oneline),
         | 
| @@ -115822,8 +115629,8 @@ rule(:default_anti_virus_feature) do | |
| 115822 115629 | 
             
                        c(
         | 
| 115823 115630 | 
             
                            "server" (  /* SAV and Anti-Spam first hop DNS server */
         | 
| 115824 115631 | 
             
                                c(
         | 
| 115825 | 
            -
             | 
| 115826 | 
            -
             | 
| 115632 | 
            +
                                    "routing-instance" arg  /* Routing instance name */,
         | 
| 115633 | 
            +
                                      ipaddr  /* SAV and Anti-Spam first hop DNS server ip */
         | 
| 115827 115634 | 
             
                                )
         | 
| 115828 115635 | 
             
                            ),
         | 
| 115829 115636 | 
             
                            "sxl-timeout" arg  /* Sxl sophos anti-virus engine timeout */,
         | 
| @@ -116163,9 +115970,9 @@ end | |
| 116163 115970 |  | 
| 116164 115971 | 
             
            rule(:host_object) do
         | 
| 116165 115972 | 
             
                c(
         | 
| 116166 | 
            -
                      ipaddr  /* IP address */,
         | 
| 116167 115973 | 
             
                    "port" arg  /* Host port number */,
         | 
| 116168 | 
            -
                    "routing-instance" arg  /* Routing-instance name  | 
| 115974 | 
            +
                    "routing-instance" arg  /* Routing-instance name */,
         | 
| 115975 | 
            +
                      ipaddr  /* IP address */
         | 
| 116169 115976 | 
             
                )
         | 
| 116170 115977 | 
             
            end
         | 
| 116171 115978 |  | 
| @@ -116563,7 +116370,6 @@ rule(:address_type) do | |
| 116563 116370 | 
             
                c(
         | 
| 116564 116371 | 
             
                    "description" arg  /* Text description of address */,
         | 
| 116565 116372 | 
             
                    c(
         | 
| 116566 | 
            -
                        ipprefix  /* Numeric IPv4 or IPv6 address with prefix */,
         | 
| 116567 116373 | 
             
                      "dns-name" (  /* DNS address name */
         | 
| 116568 116374 | 
             
                        dns_name_type  /* DNS address name */
         | 
| 116569 116375 | 
             
                      ),
         | 
| @@ -116572,7 +116378,8 @@ rule(:address_type) do | |
| 116572 116378 | 
             
                      ),
         | 
| 116573 116379 | 
             
                      "range-address" (  /* Address range */
         | 
| 116574 116380 | 
             
                        range_address_type  /* Address range */
         | 
| 116575 | 
            -
                      )
         | 
| 116381 | 
            +
                      ),
         | 
| 116382 | 
            +
                        ipprefix  /* Numeric IPv4 or IPv6 address with prefix */
         | 
| 116576 116383 | 
             
                    )
         | 
| 116577 116384 | 
             
                )
         | 
| 116578 116385 | 
             
              )
         | 
| @@ -117077,36 +116884,6 @@ rule(:security_ipsec_policy) do | |
| 117077 116884 | 
             
                )
         | 
| 117078 116885 | 
             
            end
         | 
| 117079 116886 |  | 
| 117080 | 
            -
            rule(:security_ipsec_vpn) do
         | 
| 117081 | 
            -
                c(
         | 
| 117082 | 
            -
                    "internal" (  /* Define an IPSec SA for internal RE-RE communication */
         | 
| 117083 | 
            -
                        c(
         | 
| 117084 | 
            -
                            "security-association" (  /* Define an IPsec security association */
         | 
| 117085 | 
            -
                              ipsec_internal_sa  /* Define an IPsec security association */
         | 
| 117086 | 
            -
                            )
         | 
| 117087 | 
            -
                        )
         | 
| 117088 | 
            -
                    ),
         | 
| 117089 | 
            -
                    "traceoptions" (  /* Trace options for IPSec data-plane debug */
         | 
| 117090 | 
            -
                      ipsec_traceoptions  /* Trace options for IPSec data-plane debug */
         | 
| 117091 | 
            -
                    ),
         | 
| 117092 | 
            -
                    "vpn-monitor-options" (  /* Global options for VPN liveliness monitoring */
         | 
| 117093 | 
            -
                      ipsec_vpn_monitor  /* Global options for VPN liveliness monitoring */
         | 
| 117094 | 
            -
                    ),
         | 
| 117095 | 
            -
                    "proposal" (  /* Define an IPSec proposal */
         | 
| 117096 | 
            -
                      ipsec_proposal  /* Define an IPSec proposal */
         | 
| 117097 | 
            -
                    ),
         | 
| 117098 | 
            -
                    "policy" (  /* Define an IPSec policy */
         | 
| 117099 | 
            -
                      ipsec_policy  /* Define an IPSec policy */
         | 
| 117100 | 
            -
                    ),
         | 
| 117101 | 
            -
                    "vpn" (  /* Define an IPSec VPN */
         | 
| 117102 | 
            -
                      ipsec_vpn_template  /* Define an IPSec VPN */
         | 
| 117103 | 
            -
                    ),
         | 
| 117104 | 
            -
                    "security-association" (  /* Define a manual control plane SA  */
         | 
| 117105 | 
            -
                      ipsec_sa  /* Define a manual control plane SA  */
         | 
| 117106 | 
            -
                    )
         | 
| 117107 | 
            -
                )
         | 
| 117108 | 
            -
            end
         | 
| 117109 | 
            -
             | 
| 117110 116887 | 
             
            rule(:ipsec_traceoptions) do
         | 
| 117111 116888 | 
             
                c(
         | 
| 117112 116889 | 
             
                    "flag" enum(("packet-processing" | "packet-drops" | "security-associations" | "next-hop-tunnel-binding" | "all"))  /* Events to include in data-plane IPSec trace output */.as(:oneline)
         | 
| @@ -117450,7 +117227,6 @@ rule(:ssg_destination_nat_object) do | |
| 117450 117227 | 
             
                            ),
         | 
| 117451 117228 | 
             
                            "address" (  /* Add address or address range to pool */
         | 
| 117452 117229 | 
             
                                sc(
         | 
| 117453 | 
            -
                                      ipprefix  /* IPv4 or IPv6 address or address range */,
         | 
| 117454 117230 | 
             
                                    c(
         | 
| 117455 117231 | 
             
                                      "to" (  /* Upper limit of address range */
         | 
| 117456 117232 | 
             
                                          c(
         | 
| @@ -117458,7 +117234,8 @@ rule(:ssg_destination_nat_object) do | |
| 117458 117234 | 
             
                                          )
         | 
| 117459 117235 | 
             
                                      ),
         | 
| 117460 117236 | 
             
                                      "port" arg  /* Specify the port value */
         | 
| 117461 | 
            -
                                    )
         | 
| 117237 | 
            +
                                    ),
         | 
| 117238 | 
            +
                                      ipprefix  /* IPv4 or IPv6 address or address range */
         | 
| 117462 117239 | 
             
                                )
         | 
| 117463 117240 | 
             
                            ).as(:oneline)
         | 
| 117464 117241 | 
             
                        )
         | 
| @@ -118056,13 +117833,13 @@ rule(:static_nat_rule_object) do | |
| 118056 117833 | 
             
                                      ),
         | 
| 118057 117834 | 
             
                                      "prefix" (  /* Address prefix */
         | 
| 118058 117835 | 
             
                                          c(
         | 
| 118059 | 
            -
                                                ipprefix  /* IPv4 or IPv6 address prefix value */,
         | 
| 118060 117836 | 
             
                                              "mapped-port" (  /* Mapped port */
         | 
| 118061 117837 | 
             
                                                static_nat_rule_mapped_port_object  /* Mapped port */
         | 
| 118062 117838 | 
             
                                              ).as(:oneline),
         | 
| 118063 117839 | 
             
                                              "routing-instance" (  /* Routing instance */
         | 
| 118064 117840 | 
             
                                                ("default" | arg)
         | 
| 118065 | 
            -
                                              )
         | 
| 117841 | 
            +
                                              ),
         | 
| 117842 | 
            +
                                                ipprefix  /* IPv4 or IPv6 address prefix value */
         | 
| 118066 117843 | 
             
                                          )
         | 
| 118067 117844 | 
             
                                      ),
         | 
| 118068 117845 | 
             
                                      "prefix-name" (  /* Address from address book */
         | 
| @@ -118078,10 +117855,10 @@ rule(:static_nat_rule_object) do | |
| 118078 117855 | 
             
                                      ),
         | 
| 118079 117856 | 
             
                                      "nptv6-prefix" (  /* NPTv6 address prefix, the longest prefix will be supported is /64 */
         | 
| 118080 117857 | 
             
                                          c(
         | 
| 118081 | 
            -
                                                ipprefix  /* IPv6 address prefix value, the longest prefix will be supported is /64 */,
         | 
| 118082 117858 | 
             
                                              "routing-instance" (  /* Routing instance */
         | 
| 118083 117859 | 
             
                                                ("default" | arg)
         | 
| 118084 | 
            -
                                              )
         | 
| 117860 | 
            +
                                              ),
         | 
| 117861 | 
            +
                                                ipprefix  /* IPv6 address prefix value, the longest prefix will be supported is /64 */
         | 
| 118085 117862 | 
             
                                          )
         | 
| 118086 117863 | 
             
                                      ),
         | 
| 118087 117864 | 
             
                                      "nptv6-prefix-name" (  /* NPTv6 address from address book */
         | 
| @@ -118416,4 +118193,91 @@ rule(:zone_system_services_object_type) do | |
| 118416 118193 | 
             
                )
         | 
| 118417 118194 | 
             
              )
         | 
| 118418 118195 | 
             
            end
         | 
| 118196 | 
            +
             | 
| 118197 | 
            +
            rule(:application_object) do
         | 
| 118198 | 
            +
              arg.as(:arg) (
         | 
| 118199 | 
            +
                c(
         | 
| 118200 | 
            +
                    "description" arg  /* Text description of application */,
         | 
| 118201 | 
            +
                    "term" (  /* Define individual application protocols */
         | 
| 118202 | 
            +
                      term_object  /* Define individual application protocols */
         | 
| 118203 | 
            +
                    ),
         | 
| 118204 | 
            +
                    "application-protocol" (  /* Application protocol type */
         | 
| 118205 | 
            +
                      ("bootp" | "dce-rpc" | "dce-rpc-portmap" | "dns" | "exec" | "ftp" | "ftp-data" | "gprs-gtp-c" | "gprs-gtp-u" | "gprs-gtp-v0" | "gprs-sctp" | "h323" | "icmp" | "icmpv6" | "ignore" | "iiop" | "ike-esp-nat" | "ip" | "login" | "mgcp-ca" | "mgcp-ua" | "ms-rpc" | "netbios" | "netshow" | "none" | "pptp" | "q931" | "ras" | "realaudio" | "rpc" | "rpc-portmap" | "rsh" | "rtsp" | "sccp" | "sip" | "shell" | "snmp" | "sqlnet" | "sqlnet-v2" | "sun-rpc" | "talk" | "tftp" | "traceroute" | "http" | "winframe" | "https" | "imap" | "smtp" | "ssh" | "telnet" | "twamp")
         | 
| 118206 | 
            +
                    ),
         | 
| 118207 | 
            +
                    "protocol" (  /* Match IP protocol type */
         | 
| 118208 | 
            +
                      ("icmp" | "igmp" | "ipip" | "tcp" | "egp" | "udp" | "rsvp" | "gre" | "esp" | "ah" | "icmp6" | "ospf" | "pim" | "sctp" | arg)
         | 
| 118209 | 
            +
                    ),
         | 
| 118210 | 
            +
                    "source-port" (  /* Match TCP/UDP source port */
         | 
| 118211 | 
            +
                      ("ftp-data" | "ftp" | "ssh" | "telnet" | "smtp" | "tacacs" | "tacacs-ds" | "domain" | "dhcp" | "bootps" | "bootpc" | "tftp" | "finger" | "http" | "kerberos-sec" | "pop3" | "sunrpc" | "ident" | "nntp" | "ntp" | "netbios-ns" | "netbios-dgm" | "netbios-ssn" | "imap" | "snmp" | "snmptrap" | "xdmcp" | "bgp" | "ldap" | "mobileip-agent" | "mobilip-mn" | "msdp" | "https" | "snpp" | "biff" | "exec" | "login" | "who" | "cmd" | "syslog" | "printer" | "talk" | "ntalk" | "rip" | "timed" | "klogin" | "kshell" | "ldp" | "krb-prop" | "krbupdate" | "kpasswd" | "socks" | "afs" | "pptp" | "radius" | "radacct" | "zephyr-srv" | "zephyr-clt" | "zephyr-hm" | "nfsd" | "eklogin" | "ekshell" | "rkinit" | "cvspserver" | arg)
         | 
| 118212 | 
            +
                    ),
         | 
| 118213 | 
            +
                    "destination-port" (  /* Match TCP/UDP destination port */
         | 
| 118214 | 
            +
                      ("ftp-data" | "ftp" | "ssh" | "telnet" | "smtp" | "tacacs" | "tacacs-ds" | "domain" | "dhcp" | "bootps" | "bootpc" | "tftp" | "finger" | "http" | "kerberos-sec" | "pop3" | "sunrpc" | "ident" | "nntp" | "ntp" | "netbios-ns" | "netbios-dgm" | "netbios-ssn" | "imap" | "snmp" | "snmptrap" | "xdmcp" | "bgp" | "ldap" | "mobileip-agent" | "mobilip-mn" | "msdp" | "https" | "snpp" | "biff" | "exec" | "login" | "who" | "cmd" | "syslog" | "printer" | "talk" | "ntalk" | "rip" | "timed" | "klogin" | "kshell" | "ldp" | "krb-prop" | "krbupdate" | "kpasswd" | "socks" | "afs" | "pptp" | "radius" | "radacct" | "zephyr-srv" | "zephyr-clt" | "zephyr-hm" | "nfsd" | "eklogin" | "ekshell" | "rkinit" | "cvspserver" | arg)
         | 
| 118215 | 
            +
                    ),
         | 
| 118216 | 
            +
                    "ether-type" arg  /* Match ether type */,
         | 
| 118217 | 
            +
                    "snmp-command" arg  /* Match SNMP command */,
         | 
| 118218 | 
            +
                    "icmp-type" (  /* Match ICMP message type */
         | 
| 118219 | 
            +
                      ("echo-request" | "echo-reply" | "unreachable" | "source-quench" | "redirect" | "router-advertisement" | "router-solicit" | "time-exceeded" | "parameter-problem" | "timestamp" | "timestamp-reply" | "info-request" | "info-reply" | "mask-request" | "mask-reply" | arg)
         | 
| 118220 | 
            +
                    ),
         | 
| 118221 | 
            +
                    "icmp6-type" (  /* Match ICMP6 message type */
         | 
| 118222 | 
            +
                      ("echo-request" | "echo-reply" | "destination-unreachable" | "router-advertisement" | "router-solicit" | "time-exceeded" | "parameter-problem" | "packet-too-big" | "membership-query" | "membership-report" | "membership-termination" | "redirect" | "neighbor-solicit" | "neighbor-advertisement" | "router-renumbering" | "node-information-request" | "node-information-reply" | arg)
         | 
| 118223 | 
            +
                    ),
         | 
| 118224 | 
            +
                    "icmp-code" (  /* Match ICMP message code */
         | 
| 118225 | 
            +
                      ("network-unreachable" | "host-unreachable" | "protocol-unreachable" | "port-unreachable" | "fragmentation-needed" | "source-route-failed" | "destination-network-unknown" | "destination-host-unknown" | "source-host-isolated" | "destination-network-prohibited" | "destination-host-prohibited" | "network-unreachable-for-tos" | "host-unreachable-for-tos" | "communication-prohibited-by-filtering" | "host-precedence-violation" | "precedence-cutoff-in-effect" | "redirect-for-network" | "redirect-for-host" | "redirect-for-tos-and-net" | "redirect-for-tos-and-host" | "ttl-eq-zero-during-transit" | "ttl-eq-zero-during-reassembly" | "ip-header-bad" | "required-option-missing" | arg)
         | 
| 118226 | 
            +
                    ),
         | 
| 118227 | 
            +
                    "icmp6-code" (  /* Match ICMP6 message code */
         | 
| 118228 | 
            +
                      ("no-route-to-destination" | "administratively-prohibited" | "address-unreachable" | "port-unreachable" | "ttl-eq-zero-during-transit" | "ttl-eq-zero-during-reassembly" | "ip6-header-bad" | "unrecognized-next-header" | "unrecognized-option" | arg)
         | 
| 118229 | 
            +
                    ),
         | 
| 118230 | 
            +
                    "ttl-threshold" arg  /* Traceroute TTL threshold */,
         | 
| 118231 | 
            +
                    "rpc-program-number" arg  /* Match range of RPC program numbers */,
         | 
| 118232 | 
            +
                    "uuid" arg  /* Match universal unique identifier for DCE RPC objects */,
         | 
| 118233 | 
            +
                    "inactivity-timeout" (  /* Application-specific inactivity timeout */
         | 
| 118234 | 
            +
                      ("never" | arg)
         | 
| 118235 | 
            +
                    ),
         | 
| 118236 | 
            +
                    "gate-timeout" arg  /* Application-specific gate timeout */,
         | 
| 118237 | 
            +
                    "child-inactivity-timeout" arg  /* Application-specific child session inactivity timeout */,
         | 
| 118238 | 
            +
                    "learn-sip-register"  /* Learn potential incoming SIP calls by inspecting the SIP register method */,
         | 
| 118239 | 
            +
                    "sip-call-hold-timeout" arg  /* SIP flow timeout when call is put on hold */,
         | 
| 118240 | 
            +
                    c(
         | 
| 118241 | 
            +
                      "do-not-translate-AAAA-query-to-A-query"  /* Knob to control the translation of AAAA query to A query */,
         | 
| 118242 | 
            +
                      "do-not-translate-A-query-to-AAAA-query"  /* Knob to control the translation of A query to AAAA query */
         | 
| 118243 | 
            +
                    )
         | 
| 118244 | 
            +
                )
         | 
| 118245 | 
            +
              )
         | 
| 118246 | 
            +
            end
         | 
| 118247 | 
            +
             | 
| 118248 | 
            +
            rule(:term_object) do
         | 
| 118249 | 
            +
              arg.as(:arg) (
         | 
| 118250 | 
            +
                c(
         | 
| 118251 | 
            +
                    "alg" (  /* Application Layer Gateway */
         | 
| 118252 | 
            +
                      ("bootp" | "dce-rpc" | "dce-rpc-portmap" | "dns" | "exec" | "ftp" | "ftp-data" | "gprs-gtp-c" | "gprs-gtp-u" | "gprs-gtp-v0" | "gprs-sctp" | "h323" | "icmp" | "icmpv6" | "ignore" | "iiop" | "ike-esp-nat" | "ip" | "login" | "mgcp-ca" | "mgcp-ua" | "ms-rpc" | "netbios" | "netshow" | "none" | "pptp" | "q931" | "ras" | "realaudio" | "rpc" | "rpc-portmap" | "rsh" | "rtsp" | "sccp" | "sip" | "shell" | "snmp" | "sqlnet" | "sqlnet-v2" | "sun-rpc" | "talk" | "tftp" | "traceroute" | "http" | "winframe" | "https" | "imap" | "smtp" | "ssh" | "telnet" | "twamp")
         | 
| 118253 | 
            +
                    ),
         | 
| 118254 | 
            +
                    "protocol" (  /* Match IP protocol type */
         | 
| 118255 | 
            +
                      ("icmp" | "igmp" | "ipip" | "tcp" | "egp" | "udp" | "rsvp" | "gre" | "esp" | "ah" | "icmp6" | "ospf" | "pim" | "sctp" | arg)
         | 
| 118256 | 
            +
                    ),
         | 
| 118257 | 
            +
                    "source-port" (  /* Match TCP/UDP source port */
         | 
| 118258 | 
            +
                      ("ftp-data" | "ftp" | "ssh" | "telnet" | "smtp" | "tacacs" | "tacacs-ds" | "domain" | "dhcp" | "bootps" | "bootpc" | "tftp" | "finger" | "http" | "kerberos-sec" | "pop3" | "sunrpc" | "ident" | "nntp" | "ntp" | "netbios-ns" | "netbios-dgm" | "netbios-ssn" | "imap" | "snmp" | "snmptrap" | "xdmcp" | "bgp" | "ldap" | "mobileip-agent" | "mobilip-mn" | "msdp" | "https" | "snpp" | "biff" | "exec" | "login" | "who" | "cmd" | "syslog" | "printer" | "talk" | "ntalk" | "rip" | "timed" | "klogin" | "kshell" | "ldp" | "krb-prop" | "krbupdate" | "kpasswd" | "socks" | "afs" | "pptp" | "radius" | "radacct" | "zephyr-srv" | "zephyr-clt" | "zephyr-hm" | "nfsd" | "eklogin" | "ekshell" | "rkinit" | "cvspserver" | arg)
         | 
| 118259 | 
            +
                    ),
         | 
| 118260 | 
            +
                    "destination-port" (  /* Match TCP/UDP destination port */
         | 
| 118261 | 
            +
                      ("ftp-data" | "ftp" | "ssh" | "telnet" | "smtp" | "tacacs" | "tacacs-ds" | "domain" | "dhcp" | "bootps" | "bootpc" | "tftp" | "finger" | "http" | "kerberos-sec" | "pop3" | "sunrpc" | "ident" | "nntp" | "ntp" | "netbios-ns" | "netbios-dgm" | "netbios-ssn" | "imap" | "snmp" | "snmptrap" | "xdmcp" | "bgp" | "ldap" | "mobileip-agent" | "mobilip-mn" | "msdp" | "https" | "snpp" | "biff" | "exec" | "login" | "who" | "cmd" | "syslog" | "printer" | "talk" | "ntalk" | "rip" | "timed" | "klogin" | "kshell" | "ldp" | "krb-prop" | "krbupdate" | "kpasswd" | "socks" | "afs" | "pptp" | "radius" | "radacct" | "zephyr-srv" | "zephyr-clt" | "zephyr-hm" | "nfsd" | "eklogin" | "ekshell" | "rkinit" | "cvspserver" | arg)
         | 
| 118262 | 
            +
                    ),
         | 
| 118263 | 
            +
                    "icmp-type" (  /* Match ICMP message type */
         | 
| 118264 | 
            +
                      ("echo-request" | "echo-reply" | "unreachable" | "source-quench" | "redirect" | "router-advertisement" | "router-solicit" | "time-exceeded" | "parameter-problem" | "timestamp" | "timestamp-reply" | "info-request" | "info-reply" | "mask-request" | "mask-reply" | arg)
         | 
| 118265 | 
            +
                    ),
         | 
| 118266 | 
            +
                    "icmp-code" (  /* Match ICMP message code */
         | 
| 118267 | 
            +
                      ("network-unreachable" | "host-unreachable" | "protocol-unreachable" | "port-unreachable" | "fragmentation-needed" | "source-route-failed" | "destination-network-unknown" | "destination-host-unknown" | "source-host-isolated" | "destination-network-prohibited" | "destination-host-prohibited" | "network-unreachable-for-tos" | "host-unreachable-for-tos" | "communication-prohibited-by-filtering" | "host-precedence-violation" | "precedence-cutoff-in-effect" | "redirect-for-network" | "redirect-for-host" | "redirect-for-tos-and-net" | "redirect-for-tos-and-host" | "ttl-eq-zero-during-transit" | "ttl-eq-zero-during-reassembly" | "ip-header-bad" | "required-option-missing" | arg)
         | 
| 118268 | 
            +
                    ),
         | 
| 118269 | 
            +
                    "icmp6-type" (  /* Match ICMP6 message type */
         | 
| 118270 | 
            +
                      ("echo-request" | "echo-reply" | "destination-unreachable" | "router-advertisement" | "router-solicit" | "time-exceeded" | "parameter-problem" | "packet-too-big" | "membership-query" | "membership-report" | "membership-termination" | "redirect" | "neighbor-solicit" | "neighbor-advertisement" | "router-renumbering" | "node-information-request" | "node-information-reply" | arg)
         | 
| 118271 | 
            +
                    ),
         | 
| 118272 | 
            +
                    "icmp6-code" (  /* Match ICMP6 message code */
         | 
| 118273 | 
            +
                      ("no-route-to-destination" | "administratively-prohibited" | "address-unreachable" | "port-unreachable" | "ttl-eq-zero-during-transit" | "ttl-eq-zero-during-reassembly" | "ip6-header-bad" | "unrecognized-next-header" | "unrecognized-option" | arg)
         | 
| 118274 | 
            +
                    ),
         | 
| 118275 | 
            +
                    "rpc-program-number" arg  /* Match range of RPC program numbers */,
         | 
| 118276 | 
            +
                    "uuid" arg  /* Match universal unique identifier for DCE RPC objects */,
         | 
| 118277 | 
            +
                    "inactivity-timeout" (  /* Application-specific inactivity timeout */
         | 
| 118278 | 
            +
                      ("never" | arg)
         | 
| 118279 | 
            +
                    )
         | 
| 118280 | 
            +
                )
         | 
| 118281 | 
            +
              ).as(:oneline)
         | 
| 118282 | 
            +
            end
         | 
| 118419 118283 | 
             
            # End of vSRX 18.3R1.9
         |