diff --git a/go/pkg/pass1/print-code.go b/go/pkg/pass1/print-code.go
index 52abf8d8..2d664811 100644
--- a/go/pkg/pass1/print-code.go
+++ b/go/pkg/pass1/print-code.go
@@ -2391,27 +2391,8 @@ func (c *spoc) getCodeInfo(vrfMembers []*router) *codeInfo {
}
}
-func (c *spoc) printPanOS(fd *os.File, vrfMembers []*router, info *codeInfo) {
- pdP := ""
- if pdp := info.PolicyDistributionPoint; pdp != "" {
- pdP = "\n[ Policy_distribution_point = " + pdp + " ]"
- }
- fmt.Fprintf(fd,
- `
-
-`,
- program, version,
- strings.Join(info.NameList, ", "),
- info.Model,
- strings.Join(info.IPList, ", "),
- pdP)
-
+func (c *spoc) printPanOS(fd *os.File, vrfMembers []*router) {
+ fmt.Fprintln(fd, ``)
fmt.Fprintln(fd, "")
for _, r := range vrfMembers {
fmt.Fprintln(fd, "#insert", r.vrf)
@@ -2419,23 +2400,7 @@ Generated by %s, version %s
fmt.Fprintln(fd, "")
}
-func (c *spoc) printNSX(fd *os.File, vrfMembers []*router, info *codeInfo) {
- pdP := ""
- if pdp := info.PolicyDistributionPoint; pdp != "" {
- pdP = "\n#[ Policy_distribution_point = " + pdp + " ]"
- }
- fmt.Fprintf(fd,
- `#Generated by %s, version %s
-#
-#[ BEGIN %s ]
-#[ Model = %s ]
-#[ IP = %s ]%s
-`,
- program, version,
- strings.Join(info.NameList, ", "),
- info.Model,
- strings.Join(info.IPList, ", "),
- pdP)
+func (c *spoc) printNSX(fd *os.File, vrfMembers []*router) {
fmt.Fprintln(fd, "#insert JSON")
}
@@ -2473,35 +2438,16 @@ func (c *spoc) printRouter(r *router, dir string) string {
defer fd.Close()
if model.filter == "PAN-OS" {
- c.printPanOS(fd, vrfMembers, infoData)
+ c.printPanOS(fd, vrfMembers)
for _, vrouter := range vrfMembers {
collectAclsFromIORules(vrouter)
}
} else if model.filter == "NSX" {
- c.printNSX(fd, vrfMembers, infoData)
+ c.printNSX(fd, vrfMembers)
for _, vrouter := range vrfMembers {
c.printCiscoAcls(fd, vrouter)
}
} else {
-
- // Print version header.
- commentChar := model.commentChar
- fmt.Fprintf(fd, "%s Generated by %s, %s", commentChar, program, version)
- fmt.Fprintln(fd)
-
- header := func(key, val string) {
- fmt.Fprintf(fd, "%s [ %s %s ]\n", commentChar, key, val)
- }
- header("BEGIN", deviceName)
- header("Model =", infoData.Model)
- ips := infoData.IPList
- if len(ips) != 0 {
- header("IP =", strings.Join(ips, ","))
- }
- if pdp := infoData.PolicyDistributionPoint; pdp != "" {
- header("Policy_distribution_point =", pdp)
- }
-
for _, vrouter := range vrfMembers {
c.printRoutes(fd, vrouter)
if vrouter.managed == "" {
@@ -2513,9 +2459,6 @@ func (c *spoc) printRouter(r *router, dir string) string {
printAclSuffix(fd, vrouter)
printRouterIntf(fd, vrouter)
}
-
- header("END", deviceName)
- fmt.Fprintln(fd)
}
// Print ACLs in machine independent format into separate file.
diff --git a/go/testdata/area.t b/go/testdata/area.t
index 0f90168c..ee759307 100644
--- a/go/testdata/area.t
+++ b/go/testdata/area.t
@@ -117,10 +117,10 @@ service:pdp3 = {
permit src = host:h3; dst = user; prt = ip;
}
=OUTPUT=
---asa1
-! [ IP = 10.1.1.1 ]
---asa2
-! [ IP = 10.1.3.2 ]
+--asa1.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.1.1"],"policy_distribution_point":"10.1.1.10"}
+--asa2.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.3.2"],"policy_distribution_point":"10.1.3.10"}
=OPTIONS=--check_policy_distribution_point=warn
############################################################
diff --git a/go/testdata/auto_intf.t b/go/testdata/auto_intf.t
index 9cb06a84..8aff9ee3 100644
--- a/go/testdata/auto_intf.t
+++ b/go/testdata/auto_intf.t
@@ -1211,8 +1211,8 @@ service:test = {
permit src = network:a; dst = user; prt = tcp 22;
}
=OUTPUT=
---r1
-! [ IP = 10.0.0.1,10.1.1.1 ]
+--r1.info
+{"generated_by":"devel","model":"IOS","ip_list":["10.0.0.1","10.1.1.1"],"policy_distribution_point":"10.0.0.10"}
=END=
############################################################
@@ -1258,8 +1258,8 @@ service:s1 = {
permit src = user; dst = interface:r2.n5; prt = tcp 80;
}
=OUTPUT=
---r2
-! [ IP = 10.1.3.2,10.1.4.1 ]
+--r2.info
+{"generated_by":"devel","model":"IOS","ip_list":["10.1.3.2","10.1.4.1"],"policy_distribution_point":"10.1.1.111"}
=END=
############################################################
@@ -1285,8 +1285,8 @@ service:s1 = {
prt = tcp 22;
}
=OUTPUT=
---r1
-! [ IP = 10.1.2.1,10.1.3.1 ]
+--r1.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.1","10.1.3.1"],"policy_distribution_point":"10.1.1.111"}
=OPTIONS=--check_policy_distribution_point=1
############################################################
@@ -1320,10 +1320,10 @@ service:s = {
permit src = network:n3; dst = user; prt = tcp 22;
}
=OUTPUT=
---r1
-! [ IP = 10.1.2.3 ]
---r2
-! [ IP = 10.1.2.2 ]
+--r1.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.3"],"policy_distribution_point":"10.1.3.9"}
+--r2.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.2"],"policy_distribution_point":"10.1.3.9"}
=END=
############################################################
diff --git a/go/testdata/bridged.t b/go/testdata/bridged.t
index f9e7f198..d06c970a 100644
--- a/go/testdata/bridged.t
+++ b/go/testdata/bridged.t
@@ -404,8 +404,8 @@ service:admin = {
permit src = network:n1; dst = user; prt = tcp 22;
}
=OUTPUT=
---bridge
-! [ IP = 10.1.2.9 ]
+--bridge.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.9"],"policy_distribution_point":"10.1.1.111"}
=END=
############################################################
@@ -417,8 +417,8 @@ service:admin = {
permit src = network:n1; dst = user; prt = tcp 22;
}
=OUTPUT=
---bridge
-! [ IP = 10.1.2.9 ]
+--bridge.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.9"],"policy_distribution_point":"10.1.1.111"}
=END=
############################################################
@@ -430,8 +430,8 @@ service:admin = {
permit src = network:n1; dst = user; prt = tcp 22;
}
=OUTPUT=
---bridge
-! [ IP = 10.1.2.9 ]
+--bridge.info
+{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.9"],"policy_distribution_point":"10.1.1.111"}
=END=
############################################################
diff --git a/go/testdata/iptables.t b/go/testdata/iptables.t
index 5ff119e0..43738481 100644
--- a/go/testdata/iptables.t
+++ b/go/testdata/iptables.t
@@ -21,10 +21,6 @@ service:s1 = {
--r1.info
{"generated_by":"devel","model":"Linux"}
--r1
-# [ BEGIN r1 ]
---
-# [ Model = Linux ]
---
# [ PREFIX ]
--
#!/sbin/iptables-restore <
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
--ipv6/r1.info
{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
---ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
=END=
############################################################
@@ -424,10 +348,6 @@ router:r1@vsys1 = {
interface:n1 = { ip = ::a01:102; hardware = IN; }
interface:n2 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
-- ipv6/ipv6
network:n1v6 = { ip = ::a01:100/120; }
network:n2v6 = { ip = ::a01:200/120; }
@@ -442,79 +362,11 @@ router:r1@vsys1 = {
interface:n1v6 = { ip = ::a01:102; hardware = IN; }
interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
=OUTPUT=
---ipv6/ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
---ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
+--ipv6/ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
+--ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
=END=
############################################################
@@ -536,10 +388,6 @@ router:r1@vsys1 = {
interface:n1 = { ip = ::a01:102; hardware = IN; }
interface:n2 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
-- ipv6/ipv6
network:n1v6 = { ip = ::a01:100/120; }
network:n2v6 = { ip = ::a01:200/120; }
@@ -554,79 +402,11 @@ router:r1@vsys1 = {
interface:n1v6 = { ip = ::a01:102; hardware = IN; }
interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
=OUTPUT=
---ipv6/ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
---ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
+--ipv6/ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
+--ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
=END=
############################################################
@@ -782,15 +562,10 @@ service:s4 = {
permit src = user; dst = network:n3; prt = tcp 81;
}
=OUTPUT=
+--ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101","::a01:109"],"name_list":["r1","r2"]}
--ipv6/r1
-
--
@@ -995,15 +770,10 @@ service:s4 = {
permit src = user; dst = host:h50, host:h60; prt = ip;
}
=OUTPUT=
+--ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
--ipv6/r1
-
--
@@ -1411,7 +1181,7 @@ service:s1 = {
=END=
############################################################
-=TITLE=Add Policy Distribution Point To Header
+=TITLE=Add policy distribution point to info file
=PARAMS=--ipv6
=INPUT=
network:n1 = { ip = ::a01:100/120; }
@@ -1442,13 +1212,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- ipv6/r1
-[ BEGIN r1 ]
-[ Model = PAN-OS ]
-[ IP = ::a01:101 ]
-[ Policy_distribution_point = ::a01:309 ]
--->
-
+-- ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"],"policy_distribution_point":"::a01:309"}
=END=
############################################################
\ No newline at end of file
diff --git a/go/testdata/ipv6/reuse-previous_ipv6.t b/go/testdata/ipv6/reuse-previous_ipv6.t
index 45f9d48f..740e863f 100644
--- a/go/testdata/ipv6/reuse-previous_ipv6.t
+++ b/go/testdata/ipv6/reuse-previous_ipv6.t
@@ -133,11 +133,10 @@ network:n1 = { ip = ::a01:100/120; }
mkdir old
mkdir out
ln -s ../old out/.prev
+cat < old/r1.info
+{"generated_by":"devel","model":"ASA","name_list":["r1"]}
+END
cat < old/r1.config
-! Generated by Netspoc, devel
-! [ BEGIN r1 ]
-! [ Model = ASA ]
-! [ END r1 ]
END
cat < old/r1.rules
diff --git a/go/testdata/ipv6/routing_only_ipv6.t b/go/testdata/ipv6/routing_only_ipv6.t
index 6301acdc..6a7c3946 100644
--- a/go/testdata/ipv6/routing_only_ipv6.t
+++ b/go/testdata/ipv6/routing_only_ipv6.t
@@ -27,8 +27,6 @@ service:test = {
--ipv6/r.info
{"generated_by":"devel","model":"ASA","ip_list":["::a01:201"],"policy_distribution_point":"::a01:30a"}
--ipv6/r
-! [ IP = ::a01:201 ]
---
! [ Routing ]
ipv6 route n2 ::a01:300/120 ::a01:202
=END=
diff --git a/go/testdata/ipv6/vrf_ipv6.t b/go/testdata/ipv6/vrf_ipv6.t
index 0999c456..dbc33b56 100644
--- a/go/testdata/ipv6/vrf_ipv6.t
+++ b/go/testdata/ipv6/vrf_ipv6.t
@@ -265,8 +265,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- ipv6/r1
-! [ IP = ::a01:102 ]
+-- ipv6/r1.info
+{"generated_by":"devel","model":"NX-OS","ip_list":["::a01:102"]}
=END=
############################################################
@@ -293,8 +293,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- ipv6/r1
-! [ IP = ::a01:101,::a01:102 ]
+-- ipv6/r1.info
+{"generated_by":"devel","model":"NX-OS","ip_list":["::a01:101","::a01:102"],"policy_distribution_point":"::a01:109"}
=END=
############################################################
@@ -405,8 +405,8 @@ service:admin = {
permit src = host:h1; dst = user; prt = tcp 22;
}
=OUTPUT=
--- ipv6/r1
-! [ IP = ::a01:201,::a01:302 ]
+-- ipv6/r1.info
+{"generated_by":"devel","model":"IOS","ip_list":["::a01:201","::a01:302"],"policy_distribution_point":"::a01:10a"}
=OPTIONS=--check_policy_distribution_point=1
############################################################
@@ -429,28 +429,4 @@ Error: Must not use VRF at router:r1@v1 of model ASA
Error: Must not use VRF at router:r1@v2 of model ASA
=END=
-############################################################
-=TITLE=Add Policy Distribution Point To Header
-=PARAMS=--ipv6
-=INPUT=
-network:n1 = { ip = ::a01:100/120;
- host:netspoc = { ip = ::a01:109; }
-}
-router:r1 = {
- managed;
- policy_distribution_point = host:netspoc;
- model = NX-OS;
- interface:n1 = { ip = ::a01:101; hardware = v1; }
-}
-service:admin = {
- user = interface:r1.n1;
- permit src = host:netspoc; dst = user; prt = tcp 22;
-}
-=OUTPUT=
--- ipv6/r1
-! [ IP = ::a01:101 ]
---
-! [ Policy_distribution_point = ::a01:109 ]
-=END=
-
############################################################
\ No newline at end of file
diff --git a/go/testdata/nsx.t b/go/testdata/nsx.t
index 4388eac6..575a239c 100644
--- a/go/testdata/nsx.t
+++ b/go/testdata/nsx.t
@@ -85,490 +85,54 @@ router:r1@v1 = {
interface:n1 = { ip = 10.1.1.2; hardware = IN; }
interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
--- ipv6
-network:n1v6 = { ip = ::a01:100/120; }
-network:n2v6 = { ip = ::a01:200/120; }
-router:r1@v1 = {
- model = NSX, T0;
- managed;
- interface:n1v6 = { ip = ::a01:102; hardware = IN; }
- interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
-}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
-=OUTPUT=
---ipv6/r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1 ]
---
-#[ Model = NSX ]
---
-#[ IP = 10.1.1.1 ]
---
-{
- "groups": null,
- "policies": [
- {
- "id": "Netspoc-v1",
- "resource_type": "GatewayPolicy",
- "rules": [
- {
- "action": "ALLOW",
- "destination_groups": [
- "::a01:200/120"
- ],
- "direction": "OUT",
- "id": "v6r1",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 20,
- "services": [
- "/infra/services/Netspoc-tcp_80"
- ],
- "source_groups": [
- "::a01:100/120"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "OUT",
- "id": "v6r2",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "IN",
- "id": "v6r3",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- }
- ]
- }
- ],
- "services": [
- {
- "id": "Netspoc-tcp_80",
- "service_entries": [
- {
- "destination_ports": [
- "80"
- ],
- "id": "id",
- "l4_protocol": "TCP",
- "resource_type": "L4PortSetServiceEntry",
- "source_ports": []
- }
- ]
- }
- ]
-}
---r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1 ]
---
-#[ Model = NSX ]
---
-#[ IP = 10.1.1.1 ]
---
-{
- "groups": null,
- "policies": [
- {
- "id": "Netspoc-v1",
- "resource_type": "GatewayPolicy",
- "rules": [
- {
- "action": "ALLOW",
- "destination_groups": [
- "10.1.2.0/24"
- ],
- "direction": "OUT",
- "id": "r1",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 20,
- "services": [
- "/infra/services/Netspoc-tcp_80"
- ],
- "source_groups": [
- "10.1.1.0/24"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "OUT",
- "id": "r2",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "IN",
- "id": "r3",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- }
- ]
- }
- ],
- "services": [
- {
- "id": "Netspoc-tcp_80",
- "service_entries": [
- {
- "destination_ports": [
- "80"
- ],
- "id": "id",
- "l4_protocol": "TCP",
- "resource_type": "L4PortSetServiceEntry",
- "source_ports": []
- }
- ]
- }
- ]
-}
-=END=
-
-############################################################
-=TITLE=Only one IPv6 management_instance
-# No IPv6
-=INPUT=
--- z_sort_after_ipv6
-network:n1 = { ip = 10.1.1.0/24; }
-network:n2 = { ip = 10.1.2.0/24; }
-router:r1@v1 = {
- model = NSX, T0;
- managed;
- interface:n1 = { ip = 10.1.1.2; hardware = IN; }
- interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
-}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
--- ipv6
-network:n1v6 = { ip = ::a01:100/120; }
-network:n2v6 = { ip = ::a01:200/120; }
-router:r1 = {
- model = NSX;
- management_instance;
- interface:n1v6 = { ip = ::a01:101; }
-}
-router:r1@v1 = {
- model = NSX, T0;
- managed;
- interface:n1v6 = { ip = ::a01:102; hardware = IN; }
- interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
-}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
-=OUTPUT=
---ipv6/r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1 ]
---
-#[ Model = NSX ]
---
-#[ IP = ::a01:101 ]
---
-{
- "groups": null,
- "policies": [
- {
- "id": "Netspoc-v1",
- "resource_type": "GatewayPolicy",
- "rules": [
- {
- "action": "ALLOW",
- "destination_groups": [
- "::a01:200/120"
- ],
- "direction": "OUT",
- "id": "v6r1",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 20,
- "services": [
- "/infra/services/Netspoc-tcp_80"
- ],
- "source_groups": [
- "::a01:100/120"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "OUT",
- "id": "v6r2",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "IN",
- "id": "v6r3",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- }
- ]
- }
- ],
- "services": [
- {
- "id": "Netspoc-tcp_80",
- "service_entries": [
- {
- "destination_ports": [
- "80"
- ],
- "id": "id",
- "l4_protocol": "TCP",
- "resource_type": "L4PortSetServiceEntry",
- "source_ports": []
- }
- ]
- }
- ]
-}
---r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1 ]
---
-#[ Model = NSX ]
---
-#[ IP = ::a01:101 ]
---
-{
- "groups": null,
- "policies": [
- {
- "id": "Netspoc-v1",
- "resource_type": "GatewayPolicy",
- "rules": [
- {
- "action": "ALLOW",
- "destination_groups": [
- "10.1.2.0/24"
- ],
- "direction": "OUT",
- "id": "r1",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 20,
- "services": [
- "/infra/services/Netspoc-tcp_80"
- ],
- "source_groups": [
- "10.1.1.0/24"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "OUT",
- "id": "r2",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "IN",
- "id": "r3",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- }
- ]
- }
- ],
- "services": [
- {
- "id": "Netspoc-tcp_80",
- "service_entries": [
- {
- "destination_ports": [
- "80"
- ],
- "id": "id",
- "l4_protocol": "TCP",
- "resource_type": "L4PortSetServiceEntry",
- "source_ports": []
- }
- ]
- }
- ]
+-- ipv6
+network:n1v6 = { ip = ::a01:100/120; }
+network:n2v6 = { ip = ::a01:200/120; }
+router:r1@v1 = {
+ model = NSX, T0;
+ managed;
+ interface:n1v6 = { ip = ::a01:102; hardware = IN; }
+ interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
+}
+=OUTPUT=
+--ipv6/r1.info
+{"generated_by":"devel","model":"NSX","ip_list":["10.1.1.1"],"name_list":["r1"]}
+--r1.info
+{"generated_by":"devel","model":"NSX","ip_list":["10.1.1.1"],"name_list":["r1"]}
+=END=
+
+############################################################
+=TITLE=Only one IPv6 management_instance
+# No IPv6
+=INPUT=
+-- z_sort_after_ipv6
+network:n1 = { ip = 10.1.1.0/24; }
+network:n2 = { ip = 10.1.2.0/24; }
+router:r1@v1 = {
+ model = NSX, T0;
+ managed;
+ interface:n1 = { ip = 10.1.1.2; hardware = IN; }
+ interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
+}
+-- ipv6
+network:n1v6 = { ip = ::a01:100/120; }
+network:n2v6 = { ip = ::a01:200/120; }
+router:r1 = {
+ model = NSX;
+ management_instance;
+ interface:n1v6 = { ip = ::a01:101; }
+}
+router:r1@v1 = {
+ model = NSX, T0;
+ managed;
+ interface:n1v6 = { ip = ::a01:102; hardware = IN; }
+ interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
+=OUTPUT=
+--ipv6/r1.info
+{"generated_by":"devel","model":"NSX","ip_list":["::a01:101"],"name_list":["r1"]}
+--r1.info
+{"generated_by":"devel","model":"NSX","ip_list":["::a01:101"],"name_list":["r1"]}
=END=
############################################################
@@ -589,10 +153,6 @@ router:r1@v1 = {
interface:n1 = { ip = 10.1.1.2; hardware = IN; }
interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
-- ipv6
network:n1v6 = { ip = ::a01:100/120; }
network:n2v6 = { ip = ::a01:200/120; }
@@ -607,227 +167,11 @@ router:r1@v1 = {
interface:n1v6 = { ip = ::a01:102; hardware = IN; }
interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
=OUTPUT=
---ipv6/r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1 ]
---
-#[ Model = NSX ]
---
-#[ IP = 10.1.1.1 ]
---
-{
- "groups": null,
- "policies": [
- {
- "id": "Netspoc-v1",
- "resource_type": "GatewayPolicy",
- "rules": [
- {
- "action": "ALLOW",
- "destination_groups": [
- "::a01:200/120"
- ],
- "direction": "OUT",
- "id": "v6r1",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 20,
- "services": [
- "/infra/services/Netspoc-tcp_80"
- ],
- "source_groups": [
- "::a01:100/120"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "OUT",
- "id": "v6r2",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "IN",
- "id": "v6r3",
- "ip_protocol": "IPV6",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- }
- ]
- }
- ],
- "services": [
- {
- "id": "Netspoc-tcp_80",
- "service_entries": [
- {
- "destination_ports": [
- "80"
- ],
- "id": "id",
- "l4_protocol": "TCP",
- "resource_type": "L4PortSetServiceEntry",
- "source_ports": []
- }
- ]
- }
- ]
-}
+--ipv6/r1.info
+{"generated_by":"devel","model":"NSX","ip_list":["10.1.1.1"],"name_list":["r1"]}
--r1.info
{"generated_by":"devel","model":"NSX","ip_list":["10.1.1.1"],"name_list":["r1"]}
---r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1 ]
---
-#[ Model = NSX ]
---
-#[ IP = 10.1.1.1 ]
---
-{
- "groups": null,
- "policies": [
- {
- "id": "Netspoc-v1",
- "resource_type": "GatewayPolicy",
- "rules": [
- {
- "action": "ALLOW",
- "destination_groups": [
- "10.1.2.0/24"
- ],
- "direction": "OUT",
- "id": "r1",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 20,
- "services": [
- "/infra/services/Netspoc-tcp_80"
- ],
- "source_groups": [
- "10.1.1.0/24"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "OUT",
- "id": "r2",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- },
- {
- "action": "DROP",
- "destination_groups": [
- "ANY"
- ],
- "direction": "IN",
- "id": "r3",
- "ip_protocol": "IPV4",
- "profiles": [
- "ANY"
- ],
- "resource_type": "Rule",
- "scope": [
- "/infra/tier-0s/v1"
- ],
- "sequence_number": 30,
- "services": [
- "ANY"
- ],
- "source_groups": [
- "ANY"
- ]
- }
- ]
- }
- ],
- "services": [
- {
- "id": "Netspoc-tcp_80",
- "service_entries": [
- {
- "destination_ports": [
- "80"
- ],
- "id": "id",
- "l4_protocol": "TCP",
- "resource_type": "L4PortSetServiceEntry",
- "source_ports": []
- }
- ]
- }
- ]
-}
=END=
############################################################
@@ -1005,16 +349,6 @@ service:s4 = {
--r1.info
{"generated_by":"devel","model":"NSX","ip_list":["10.1.1.1","10.1.1.9"],"name_list":["r1","r2"]}
--r1
-#Generated by Netspoc, version devel
---
-#
---
-#[ BEGIN r1, r2 ]
---
-#[ Model = NSX ]
---
-#[ IP = 10.1.1.1, 10.1.1.9 ]
---
{
"groups": [
{
@@ -2119,7 +1453,7 @@ service:s1 = {
=END=
############################################################
-=TITLE=Add Policy Distribution Point To Header
+=TITLE=Add policy distribution point to info file
=INPUT=
network:n1 = { ip = 10.1.1.0/24; }
network:n2 = { ip = 10.1.2.0/24; }
@@ -2149,10 +1483,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- r1
-#[ IP = 10.1.1.1 ]
---
-#[ Policy_distribution_point = 10.1.3.9 ]
+-- r1.info
+{"generated_by":"devel","model":"NSX","ip_list":["10.1.1.1"],"name_list":["r1"],"policy_distribution_point":"10.1.3.9"}
=END=
-############################################################
\ No newline at end of file
+############################################################
diff --git a/go/testdata/pan-os.t b/go/testdata/pan-os.t
index a4cca3f8..4d1c7f35 100644
--- a/go/testdata/pan-os.t
+++ b/go/testdata/pan-os.t
@@ -300,10 +300,6 @@ router:r1@vsys1 = {
interface:n1 = { ip = 10.1.1.2; hardware = IN; }
interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
-- ipv6
network:n1v6 = { ip = ::a01:100/120; }
network:n2v6 = { ip = ::a01:200/120; }
@@ -313,83 +309,11 @@ router:r1@vsys1 = {
interface:n1v6 = { ip = ::a01:102; hardware = IN; }
interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
=OUTPUT=
--ipv6/r1.info
{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1"],"name_list":["r1"]}
---ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
--r1.info
{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1"],"name_list":["r1"]}
---r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET_10.1.2.0_24
-tcp 80
-any
-interzone
-
-
-
-
-
-10.1.1.0/24
-10.1.2.0/24
-
-
-80
-
-
=END=
############################################################
@@ -405,10 +329,6 @@ router:r1@vsys1 = {
interface:n1 = { ip = 10.1.1.2; hardware = IN; }
interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
-- ipv6
network:n1v6 = { ip = ::a01:100/120; }
network:n2v6 = { ip = ::a01:200/120; }
@@ -423,79 +343,11 @@ router:r1@vsys1 = {
interface:n1v6 = { ip = ::a01:102; hardware = IN; }
interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
=OUTPUT=
---ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
---r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET_10.1.2.0_24
-tcp 80
-any
-interzone
-
-
-
-
-
-10.1.1.0/24
-10.1.2.0/24
-
-
-80
-
-
+--ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
+--r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["::a01:101"],"name_list":["r1"]}
=END=
############################################################
@@ -516,10 +368,6 @@ router:r1@vsys1 = {
interface:n1 = { ip = 10.1.1.2; hardware = IN; }
interface:n2 = { ip = 10.1.2.1; hardware = OUT; }
}
-service:s1 = {
- user = network:n1;
- permit src = user; dst = network:n2; prt = tcp 80;
-}
-- ipv6
network:n1v6 = { ip = ::a01:100/120; }
network:n2v6 = { ip = ::a01:200/120; }
@@ -534,79 +382,11 @@ router:r1@vsys1 = {
interface:n1v6 = { ip = ::a01:102; hardware = IN; }
interface:n2v6 = { ip = ::a01:201; hardware = OUT; }
}
-service:s1v6 = {
- user = network:n1v6;
- permit src = user; dst = network:n2v6; prt = tcp 80;
-}
=OUTPUT=
---ipv6/r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET___a01_200_120
-tcp 80
-any
-interzone
-
-
-
-
-
-::a01:100/120
-::a01:200/120
-
-
-80
-
-
---r1
-
-
-
---
-
-
-
-allow
-IN
-OUT
-
-NET_10.1.2.0_24
-tcp 80
-any
-interzone
-
-
-
-
-
-10.1.1.0/24
-10.1.2.0/24
-
-
-80
-
-
+--ipv6/r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1"],"name_list":["r1"]}
+--r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1"],"name_list":["r1"]}
=END=
############################################################
@@ -757,15 +537,10 @@ service:s4 = {
permit src = user; dst = network:n3; prt = tcp 81;
}
=OUTPUT=
+--r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1","10.1.1.9"],"name_list":["r1","r2"]}
--r1
-
--
@@ -969,15 +744,10 @@ service:s4 = {
permit src = user; dst = host:h50, host:h60; prt = ip;
}
=OUTPUT=
+--r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1"],"name_list":["r1"]}
--r1
-
--
@@ -1380,7 +1150,7 @@ service:s1 = {
=END=
############################################################
-=TITLE=Add Policy Distribution Point To Header
+=TITLE=Add policy distribution point to info file
=INPUT=
network:n1 = { ip = 10.1.1.0/24; }
network:n2 = { ip = 10.1.2.0/24; }
@@ -1410,13 +1180,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- r1
-[ BEGIN r1 ]
-[ Model = PAN-OS ]
-[ IP = 10.1.1.1 ]
-[ Policy_distribution_point = 10.1.3.9 ]
--->
-
+-- r1.info
+{"generated_by":"devel","model":"PAN-OS","ip_list":["10.1.1.1"],"name_list":["r1"],"policy_distribution_point":"10.1.3.9"}
=END=
############################################################
\ No newline at end of file
diff --git a/go/testdata/reuse-previous.t b/go/testdata/reuse-previous.t
index f5676d47..75cbe666 100644
--- a/go/testdata/reuse-previous.t
+++ b/go/testdata/reuse-previous.t
@@ -129,12 +129,10 @@ network:n1 = { ip = 10.1.1.0/24; }
mkdir old
mkdir out
ln -s ../old out/.prev
+cat < old/r1.info
+{"generated_by":"devel","model":"ASA","name_list":["r1"]}
+END
cat < old/r1.config
-! Generated by Netspoc, devel
-! [ BEGIN r1 ]
-! [ Model = ASA ]
-! [ END r1 ]
-
END
cat < old/r1.rules
{"model":"ASA","acls":null,"do_objectgroup":true}
diff --git a/go/testdata/routing_only.t b/go/testdata/routing_only.t
index 7c76f4c6..48e198f2 100644
--- a/go/testdata/routing_only.t
+++ b/go/testdata/routing_only.t
@@ -26,8 +26,6 @@ service:test = {
--r.info
{"generated_by":"devel","model":"ASA","ip_list":["10.1.2.1"],"policy_distribution_point":"10.1.3.10"}
--r
-! [ IP = 10.1.2.1 ]
---
! [ Routing ]
route n2 10.1.3.0 255.255.255.0 10.1.2.2
=END=
diff --git a/go/testdata/vrf.t b/go/testdata/vrf.t
index 23b9741f..8120363b 100644
--- a/go/testdata/vrf.t
+++ b/go/testdata/vrf.t
@@ -258,8 +258,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- r1
-! [ IP = 10.1.1.2 ]
+-- r1.info
+{"generated_by":"devel","model":"NX-OS","ip_list":["10.1.1.2"]}
=END=
############################################################
@@ -285,8 +285,8 @@ service:admin = {
permit src = host:netspoc; dst = user; prt = tcp 22;
}
=OUTPUT=
--- r1
-! [ IP = 10.1.1.1,10.1.1.2 ]
+-- r1.info
+{"generated_by":"devel","model":"NX-OS","ip_list":["10.1.1.1","10.1.1.2"],"policy_distribution_point":"10.1.1.9"}
=END=
############################################################
@@ -393,8 +393,8 @@ service:admin = {
permit src = host:h1; dst = user; prt = tcp 22;
}
=OUTPUT=
--- r1
-! [ IP = 10.1.2.1,10.1.3.2 ]
+-- r1.info
+{"generated_by":"devel","model":"IOS","ip_list":["10.1.2.1","10.1.3.2"],"policy_distribution_point":"10.1.1.10"}
=OPTIONS=--check_policy_distribution_point=1
############################################################
@@ -416,27 +416,4 @@ Error: Must not use VRF at router:r1@v1 of model ASA
Error: Must not use VRF at router:r1@v2 of model ASA
=END=
-############################################################
-=TITLE=Add Policy Distribution Point To Header
-=INPUT=
-network:n1 = { ip = 10.1.1.0/24;
- host:netspoc = { ip = 10.1.1.9; }
-}
-router:r1 = {
- managed;
- policy_distribution_point = host:netspoc;
- model = NX-OS;
- interface:n1 = { ip = 10.1.1.1; hardware = v1; }
-}
-service:admin = {
- user = interface:r1.n1;
- permit src = host:netspoc; dst = user; prt = tcp 22;
-}
-=OUTPUT=
--- r1
-! [ IP = 10.1.1.1 ]
---
-! [ Policy_distribution_point = 10.1.1.9 ]
-=END=
-
############################################################
\ No newline at end of file