ipfabric 7.2.2__tar.gz → 7.3.0__tar.gz

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.
Files changed (107) hide show
  1. {ipfabric-7.2.2 → ipfabric-7.3.0}/NOTICES.md +19 -0
  2. {ipfabric-7.2.2 → ipfabric-7.3.0}/PKG-INFO +18 -18
  3. {ipfabric-7.2.2 → ipfabric-7.3.0}/README.md +17 -17
  4. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/input_models/constants.py +3 -0
  5. ipfabric-7.3.0/ipfabric/diagrams/input_models/factory_defaults/networkSettings.json +398 -0
  6. ipfabric-7.3.0/ipfabric/diagrams/input_models/factory_defaults/pathLookupSettings.json +101 -0
  7. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/authentication.py +4 -4
  8. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/device.py +9 -4
  9. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/discovery.py +12 -2
  10. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/matrix.py +10 -6
  11. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/oas.py +5 -1
  12. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/snapshot.py +14 -6
  13. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/interfaces.py +5 -0
  14. ipfabric-7.3.0/ipfabric/oas/v7.3.json +1 -0
  15. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/cve_report.py +8 -2
  16. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/device_search.py +5 -2
  17. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/appliance.py +1 -1
  18. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/authentication.py +2 -2
  19. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/discovery.py +6 -4
  20. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/discovery_history.py +14 -7
  21. {ipfabric-7.2.2 → ipfabric-7.3.0}/pyproject.toml +3 -3
  22. ipfabric-7.2.2/ipfabric/diagrams/input_models/factory_defaults/networkSettings.json +0 -435
  23. ipfabric-7.2.2/ipfabric/diagrams/input_models/factory_defaults/pathLookupSettings.json +0 -173
  24. {ipfabric-7.2.2 → ipfabric-7.3.0}/LICENSE +0 -0
  25. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/__init__.py +0 -0
  26. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/api.py +0 -0
  27. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/auth.py +0 -0
  28. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/client.py +0 -0
  29. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/__init__.py +0 -0
  30. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/graphs.py +0 -0
  31. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/icmp.py +0 -0
  32. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/input_models/__init__.py +0 -0
  33. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/input_models/factory_defaults/__init__.py +0 -0
  34. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/input_models/graph_parameters.py +0 -0
  35. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/input_models/graph_settings.py +0 -0
  36. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/input_models/shared_view.py +0 -0
  37. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/output_models/__init__.py +0 -0
  38. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/output_models/graph_result.py +0 -0
  39. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/output_models/protocols.py +0 -0
  40. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/diagrams/output_models/trace.py +0 -0
  41. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/__init__.py +0 -0
  42. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/config_export.py +0 -0
  43. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/extensions.py +0 -0
  44. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/global_search.py +0 -0
  45. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/intent.py +0 -0
  46. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/intent_check.py +0 -0
  47. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/inventory.py +0 -0
  48. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/jobs.py +0 -0
  49. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/rbac.py +0 -0
  50. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/security.py +0 -0
  51. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/site_separation.py +0 -0
  52. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/snapshots.py +0 -0
  53. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/table.py +0 -0
  54. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/__init__.py +0 -0
  55. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/addressing.py +0 -0
  56. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/cloud.py +0 -0
  57. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/dhcp.py +0 -0
  58. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/fhrp.py +0 -0
  59. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/ip_telephony.py +0 -0
  60. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/load_balancing.py +0 -0
  61. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/managed_networks.py +0 -0
  62. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/management.py +0 -0
  63. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/mpls.py +0 -0
  64. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/multicast.py +0 -0
  65. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/neighbors.py +0 -0
  66. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/oam.py +0 -0
  67. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/platforms.py +0 -0
  68. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/port_channels.py +0 -0
  69. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/qos.py +0 -0
  70. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/routing.py +0 -0
  71. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/sdn.py +0 -0
  72. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/sdwan.py +0 -0
  73. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/security.py +0 -0
  74. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/stp.py +0 -0
  75. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/vlans.py +0 -0
  76. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/technology/wireless.py +0 -0
  77. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/users.py +0 -0
  78. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/models/vendor_api.py +0 -0
  79. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/oas/__init__.py +0 -0
  80. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/oas/v7.0.json +0 -0
  81. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/oas/v7.2.json +0 -0
  82. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/__init__.py +0 -0
  83. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/global_search.py +0 -0
  84. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/route_search.py +0 -0
  85. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/shared.py +0 -0
  86. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/scripts/techsupport.py +0 -0
  87. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/__init__.py +0 -0
  88. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/api_tokens.py +0 -0
  89. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/attributes.py +0 -0
  90. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/local_users.py +0 -0
  91. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/rbac.py +0 -0
  92. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/seeds.py +0 -0
  93. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/settings.py +0 -0
  94. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/site_separation.py +0 -0
  95. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/settings/vendor_api.py +0 -0
  96. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/__init__.py +0 -0
  97. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/configuration.py +0 -0
  98. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/feature_matrix.py +0 -0
  99. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/managed_rbac/__init__.py +0 -0
  100. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/managed_rbac/policies.json +0 -0
  101. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/managed_rbac/roles.json +0 -0
  102. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/nist.py +0 -0
  103. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/rbac.py +0 -0
  104. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/restore_intents.py +0 -0
  105. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/shared.py +0 -0
  106. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/site_seperation_report.py +0 -0
  107. {ipfabric-7.2.2 → ipfabric-7.3.0}/ipfabric/tools/vulnerabilities.py +0 -0
@@ -1,5 +1,24 @@
1
1
  # Old Deprecation & Other Important Notices
2
2
 
3
+ ## v7.3.0
4
+
5
+ **In `ipfabric>=v7.3.x` new columns `loginIpv4` and `loginIpv6` have been introduced to replace `loginIp`.**
6
+
7
+ * Inventory > Devices: `tables/inventory/devices`
8
+ * Discovery Snapshot > Connectivity Report: `tables/reports/discovery-tasks`
9
+ * Management > Discovery History: `tables/inventory/discovery-history`
10
+ * Management > Changes:
11
+ * `tables/management/changes/devices`
12
+ * `tables/management/changes/managed-devs`
13
+ * Management > Saved Config Consistency: `tables/management/configuration/saved`
14
+ * Technology > Management > Telnet access: `tables/security/enabled-telnet`
15
+
16
+ SDK Device Model will be updated to reflect this change and will include the following properties:
17
+
18
+ * `login_ipv4` - Python `ipaddress.IPv4Address` object.
19
+ * `login_ipv6` - Python `ipaddress.IPv6Address` object.
20
+ * `login_ip` - No change until the next major release.
21
+
3
22
  ## v7.2.0
4
23
 
5
24
  **In `ipfabric>=v7.2.x` Python 3.8 will be removed as a supported version as it is now
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ipfabric
3
- Version: 7.2.2
3
+ Version: 7.3.0
4
4
  Summary: Python package for interacting with IP Fabric
5
5
  License: MIT
6
6
  Keywords: ipfabric,ip-fabric,community-fabric
@@ -74,20 +74,25 @@ implementation of `http2`. The workaround is to set `http2=False` in the `IPFCli
74
74
 
75
75
  `httpx.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:1999, additional_data:None>`
76
76
 
77
- ## Upcoming Deprecation Notices
77
+ ## Notices
78
+
79
+ IP Fabric team is looking to migrate from `httpx` to [`niquests`](https://github.com/jawah/niquests).
78
80
 
79
- ### v7.2.x
81
+ Reasons:
80
82
 
81
- **In `ipfabric>=v7.2.x` Python 3.8 will be removed as a supported version as it is now
82
- [End of Life](https://devguide.python.org/versions/) as of 2024-10-07.**
83
+ - Our team has opened an issue with `httpx` to address a bug and have not received any support after 10 months.
84
+ - Last release of `httpx` was in December 2024.
85
+ - Lacks many features compared to `niquests`.
83
86
 
84
- Some changes to Vendor API models have been implemented in order for being able to model all settings.
87
+ ![Niquests Features](niquests.png)
88
+
89
+ ## Upcoming Deprecation Notices
85
90
 
86
- ### v7.3.x
91
+ ### v7.3.0
87
92
 
88
93
  #### Login IP Column Change
89
94
 
90
- **In `ipfabric>=v7.3.x` new columns `loginIpv4` and `loginIpv6` have been introduced to replace `loginIp`.**
95
+ **In `ipfabric>=v7.3.0` new columns `loginIpv4` and `loginIpv6` have been introduced to replace `loginIp`.**
91
96
 
92
97
  * Inventory > Devices: `tables/inventory/devices`
93
98
  * Discovery Snapshot > Connectivity Report: `tables/reports/discovery-tasks`
@@ -102,21 +107,20 @@ SDK Device Model will be updated to reflect this change and will include the fol
102
107
 
103
108
  * `login_ipv4` - Python `ipaddress.IPv4Address` object.
104
109
  * `login_ipv6` - Python `ipaddress.IPv6Address` object.
105
- * `login_ip` - No change until the next major release.
110
+ * `login_ip` - No change until the next major release, object will be changed to string returning the IPv4 or IPv6 address.
106
111
 
107
-
108
- ### v7.5.x
112
+ ### v7.5.0
109
113
 
110
114
  #### Restore Intents
111
115
  With the introduction of the IP Fabric **Configuration Import/Export** Feature in version `7.2`
112
116
  `ipfabric.tools.restore_intents.RestoreIntents()` will be removed. Please utilize the new
113
117
  `IPFClient().settings.appliance_configuration` methods.
114
118
 
115
- ### v8.0.x
119
+ ### v8.0.0
116
120
 
117
121
  #### Moved Models
118
122
 
119
- The following Models have moved and old locations removed in 8.0:
123
+ The following Models have moved and old locations removed in `v8.0.0`:
120
124
 
121
125
  * `ipfabric.settings.vendor_api_models.*` -> `ipfabric.models.vendor_api`
122
126
  * `ipfabric.settings.discovery.Networks` -> `ipfabric.models.discovery.Networks`
@@ -125,7 +129,7 @@ The following Models have moved and old locations removed in 8.0:
125
129
 
126
130
  #### Login IP Columns Removed
127
131
 
128
- **In `ipfabric>=v7.3.x` column `loginIp` was replaced with `loginIpv4` and `loginIpv6` and in `v8.0.x` it will be removed.**
132
+ **In `ipfabric>=v7.3.0` column `loginIp` was replaced with `loginIpv4` and `loginIpv6` and in `v8.0.0` it is changed to a text field return IPv4 or IPv6.**
129
133
 
130
134
  The current `loginIp` column are removed from these tables:
131
135
 
@@ -138,10 +142,6 @@ The current `loginIp` column are removed from these tables:
138
142
  * Management > Saved Config Consistency: `tables/management/configuration/saved`
139
143
  * Technology > Management > Telnet access: `tables/security/enabled-telnet`
140
144
 
141
- **SDK Device Model `login_ip` will be replaced with by returning `login_ipv4` or the `login_ipv6` property. Previously
142
- it was a Python `ipaddress.IPv4Interface` object but now will return `ipaddress.IPv4Address` or `ipaddress.IPv6Address`.**
143
-
144
-
145
145
  ## Versioning
146
146
 
147
147
  Semantic Versioning: `Major.Minor.Patch`
@@ -27,20 +27,25 @@ implementation of `http2`. The workaround is to set `http2=False` in the `IPFCli
27
27
 
28
28
  `httpx.RemoteProtocolError: <ConnectionTerminated error_code:ErrorCodes.NO_ERROR, last_stream_id:1999, additional_data:None>`
29
29
 
30
- ## Upcoming Deprecation Notices
30
+ ## Notices
31
+
32
+ IP Fabric team is looking to migrate from `httpx` to [`niquests`](https://github.com/jawah/niquests).
31
33
 
32
- ### v7.2.x
34
+ Reasons:
33
35
 
34
- **In `ipfabric>=v7.2.x` Python 3.8 will be removed as a supported version as it is now
35
- [End of Life](https://devguide.python.org/versions/) as of 2024-10-07.**
36
+ - Our team has opened an issue with `httpx` to address a bug and have not received any support after 10 months.
37
+ - Last release of `httpx` was in December 2024.
38
+ - Lacks many features compared to `niquests`.
36
39
 
37
- Some changes to Vendor API models have been implemented in order for being able to model all settings.
40
+ ![Niquests Features](niquests.png)
41
+
42
+ ## Upcoming Deprecation Notices
38
43
 
39
- ### v7.3.x
44
+ ### v7.3.0
40
45
 
41
46
  #### Login IP Column Change
42
47
 
43
- **In `ipfabric>=v7.3.x` new columns `loginIpv4` and `loginIpv6` have been introduced to replace `loginIp`.**
48
+ **In `ipfabric>=v7.3.0` new columns `loginIpv4` and `loginIpv6` have been introduced to replace `loginIp`.**
44
49
 
45
50
  * Inventory > Devices: `tables/inventory/devices`
46
51
  * Discovery Snapshot > Connectivity Report: `tables/reports/discovery-tasks`
@@ -55,21 +60,20 @@ SDK Device Model will be updated to reflect this change and will include the fol
55
60
 
56
61
  * `login_ipv4` - Python `ipaddress.IPv4Address` object.
57
62
  * `login_ipv6` - Python `ipaddress.IPv6Address` object.
58
- * `login_ip` - No change until the next major release.
63
+ * `login_ip` - No change until the next major release, object will be changed to string returning the IPv4 or IPv6 address.
59
64
 
60
-
61
- ### v7.5.x
65
+ ### v7.5.0
62
66
 
63
67
  #### Restore Intents
64
68
  With the introduction of the IP Fabric **Configuration Import/Export** Feature in version `7.2`
65
69
  `ipfabric.tools.restore_intents.RestoreIntents()` will be removed. Please utilize the new
66
70
  `IPFClient().settings.appliance_configuration` methods.
67
71
 
68
- ### v8.0.x
72
+ ### v8.0.0
69
73
 
70
74
  #### Moved Models
71
75
 
72
- The following Models have moved and old locations removed in 8.0:
76
+ The following Models have moved and old locations removed in `v8.0.0`:
73
77
 
74
78
  * `ipfabric.settings.vendor_api_models.*` -> `ipfabric.models.vendor_api`
75
79
  * `ipfabric.settings.discovery.Networks` -> `ipfabric.models.discovery.Networks`
@@ -78,7 +82,7 @@ The following Models have moved and old locations removed in 8.0:
78
82
 
79
83
  #### Login IP Columns Removed
80
84
 
81
- **In `ipfabric>=v7.3.x` column `loginIp` was replaced with `loginIpv4` and `loginIpv6` and in `v8.0.x` it will be removed.**
85
+ **In `ipfabric>=v7.3.0` column `loginIp` was replaced with `loginIpv4` and `loginIpv6` and in `v8.0.0` it is changed to a text field return IPv4 or IPv6.**
82
86
 
83
87
  The current `loginIp` column are removed from these tables:
84
88
 
@@ -91,10 +95,6 @@ The current `loginIp` column are removed from these tables:
91
95
  * Management > Saved Config Consistency: `tables/management/configuration/saved`
92
96
  * Technology > Management > Telnet access: `tables/security/enabled-telnet`
93
97
 
94
- **SDK Device Model `login_ip` will be replaced with by returning `login_ipv4` or the `login_ipv6` property. Previously
95
- it was a Python `ipaddress.IPv4Interface` object but now will return `ipaddress.IPv4Address` or `ipaddress.IPv6Address`.**
96
-
97
-
98
98
  ## Versioning
99
99
 
100
100
  Semantic Versioning: `Major.Minor.Patch`
@@ -36,8 +36,11 @@ VALID_PROTOCOL_LABELS = dict(
36
36
  eigrp=Protocol(name="eigrp", labels=[PROTOCOL, INT_NAME, IP_ADDR, SUBNET, AS]),
37
37
  fex=Protocol(name="fex", labels=[PROTOCOL, INT_NAME]),
38
38
  ibgp=Protocol(name="ibgp", labels=[PROTOCOL, IP_ADDR, AS, Label(name="prefix", center=False)]),
39
+ ipsec=Protocol(name="ipsec", labels=[PROTOCOL, INT_NAME, IP_ADDR]),
39
40
  isis=Protocol(name="isis", labels=[PROTOCOL, INT_NAME, IP_ADDR, SUBNET]),
40
41
  ldp=Protocol(name="ldp", labels=[PROTOCOL, INT_NAME, IP_ADDR, SUBNET]),
42
+ manualLinkL1=Protocol(name="manualLinkL1", labels=[PROTOCOL, INT_NAME]),
43
+ manualLinkL2=Protocol(name="manualLinkL2", labels=[PROTOCOL, INT_NAME]),
41
44
  ospf=Protocol(
42
45
  name="ospf",
43
46
  labels=[
@@ -0,0 +1,398 @@
1
+ [{
2
+ "name": "Layer 1",
3
+ "type": "group",
4
+ "label": "L1",
5
+ "grouped": true,
6
+ "style": {
7
+ "color": "#6fb96f",
8
+ "pattern": "solid",
9
+ "thicknessThresholds": [2, 4, 8]
10
+ },
11
+ "children": [{
12
+ "name": "xdp",
13
+ "type": "protocol",
14
+ "grouped": true,
15
+ "style": {
16
+ "color": "#66ff66",
17
+ "pattern": "solid",
18
+ "thicknessThresholds": [2, 4, 8]
19
+ },
20
+ "visible": true,
21
+ "labels": ["protocol", "intName"],
22
+ "labelsOptions": {
23
+ "wrapCenterLabel": false,
24
+ "wrapLinecapLabel": false
25
+ }
26
+ }, {
27
+ "name": "fex",
28
+ "type": "protocol",
29
+ "grouped": true,
30
+ "style": {
31
+ "color": "#a0a0a0",
32
+ "pattern": "solid",
33
+ "thicknessThresholds": [2, 4, 8]
34
+ },
35
+ "visible": true,
36
+ "labels": ["protocol", "intName"],
37
+ "labelsOptions": {
38
+ "wrapCenterLabel": false,
39
+ "wrapLinecapLabel": false
40
+ }
41
+ }, {
42
+ "name": "wired",
43
+ "type": "protocol",
44
+ "grouped": true,
45
+ "style": {
46
+ "color": "#be93ff",
47
+ "pattern": "solid",
48
+ "thicknessThresholds": [2, 4, 8]
49
+ },
50
+ "visible": true,
51
+ "labels": ["protocol", "intName"],
52
+ "labelsOptions": {
53
+ "wrapCenterLabel": false,
54
+ "wrapLinecapLabel": false
55
+ }
56
+ }, {
57
+ "name": "wireless",
58
+ "type": "protocol",
59
+ "grouped": true,
60
+ "style": {
61
+ "color": "#be93ff",
62
+ "pattern": "solid",
63
+ "thicknessThresholds": [2, 4, 8]
64
+ },
65
+ "visible": true,
66
+ "labels": ["protocol"],
67
+ "labelsOptions": {
68
+ "wrapCenterLabel": false,
69
+ "wrapLinecapLabel": false
70
+ }
71
+ }, {
72
+ "name": "manualLinkL1",
73
+ "type": "protocol",
74
+ "grouped": true,
75
+ "style": {
76
+ "color": "#33e2c4",
77
+ "pattern": "dashed",
78
+ "thicknessThresholds": [2, 4, 8]
79
+ },
80
+ "visible": true,
81
+ "labels": ["protocol", "intName"],
82
+ "labelsOptions": {
83
+ "wrapCenterLabel": false,
84
+ "wrapLinecapLabel": false
85
+ }
86
+ }
87
+ ],
88
+ "visible": true,
89
+ "labelsOptions": {
90
+ "wrapCenterLabel": false,
91
+ "wrapLinecapLabel": false
92
+ }
93
+ }, {
94
+ "name": "Layer 2",
95
+ "type": "group",
96
+ "label": "L2",
97
+ "grouped": true,
98
+ "style": {
99
+ "color": "#7aa3cc",
100
+ "pattern": "solid",
101
+ "thicknessThresholds": [2, 4, 8]
102
+ },
103
+ "children": [{
104
+ "name": "stp",
105
+ "type": "protocol",
106
+ "grouped": true,
107
+ "style": {
108
+ "color": "#99ccff",
109
+ "pattern": "solid",
110
+ "thicknessThresholds": [2, 4, 8]
111
+ },
112
+ "visible": true,
113
+ "labels": ["protocol", "intName"],
114
+ "labelsOptions": {
115
+ "wrapCenterLabel": false,
116
+ "wrapLinecapLabel": false
117
+ }
118
+ }, {
119
+ "name": "manualLinkL2",
120
+ "type": "protocol",
121
+ "grouped": true,
122
+ "style": {
123
+ "color": "#33e2c4",
124
+ "pattern": "dashed",
125
+ "thicknessThresholds": [2, 4, 8]
126
+ },
127
+ "visible": true,
128
+ "labels": ["protocol", "intName"],
129
+ "labelsOptions": {
130
+ "wrapCenterLabel": false,
131
+ "wrapLinecapLabel": false
132
+ }
133
+ }
134
+ ],
135
+ "visible": true,
136
+ "labelsOptions": {
137
+ "wrapCenterLabel": false,
138
+ "wrapLinecapLabel": false
139
+ }
140
+ }, {
141
+ "name": "Layer 3",
142
+ "type": "group",
143
+ "label": "L3",
144
+ "grouped": true,
145
+ "style": {
146
+ "color": "#b77acc",
147
+ "pattern": "solid",
148
+ "thicknessThresholds": [2, 4, 8]
149
+ },
150
+ "children": [{
151
+ "name": "rib",
152
+ "type": "protocol",
153
+ "grouped": true,
154
+ "style": {
155
+ "color": "#ff99ff",
156
+ "pattern": "solid",
157
+ "thicknessThresholds": [2, 4, 8]
158
+ },
159
+ "visible": true,
160
+ "labels": ["protocol", "intName"],
161
+ "labelsOptions": {
162
+ "wrapCenterLabel": false,
163
+ "wrapLinecapLabel": false
164
+ }
165
+ }, {
166
+ "name": "ribIpv6",
167
+ "type": "protocol",
168
+ "grouped": true,
169
+ "style": {
170
+ "color": "#ff99ff",
171
+ "pattern": "solid",
172
+ "thicknessThresholds": [2, 4, 8]
173
+ },
174
+ "visible": true,
175
+ "labels": ["protocol", "intName"],
176
+ "labelsOptions": {
177
+ "wrapCenterLabel": false,
178
+ "wrapLinecapLabel": false
179
+ }
180
+ }, {
181
+ "name": "dgw",
182
+ "type": "protocol",
183
+ "grouped": true,
184
+ "style": {
185
+ "color": "#ff99ff",
186
+ "pattern": "solid",
187
+ "thicknessThresholds": [2, 4, 8]
188
+ },
189
+ "visible": true,
190
+ "labels": ["protocol", "intName"],
191
+ "labelsOptions": {
192
+ "wrapCenterLabel": false,
193
+ "wrapLinecapLabel": false
194
+ }
195
+ }, {
196
+ "name": "dgwIpv6",
197
+ "type": "protocol",
198
+ "grouped": true,
199
+ "style": {
200
+ "color": "#ff99ff",
201
+ "pattern": "solid",
202
+ "thicknessThresholds": [2, 4, 8]
203
+ },
204
+ "visible": true,
205
+ "labels": ["protocol", "intName"],
206
+ "labelsOptions": {
207
+ "wrapCenterLabel": false,
208
+ "wrapLinecapLabel": false
209
+ }
210
+ }, {
211
+ "name": "ebgp",
212
+ "type": "protocol",
213
+ "grouped": true,
214
+ "style": {
215
+ "color": "#009688",
216
+ "pattern": "solid",
217
+ "thicknessThresholds": [2, 4, 8]
218
+ },
219
+ "visible": true,
220
+ "labels": ["protocol", "as"],
221
+ "labelsOptions": {
222
+ "wrapCenterLabel": false,
223
+ "wrapLinecapLabel": false
224
+ }
225
+ }, {
226
+ "name": "ibgp",
227
+ "type": "protocol",
228
+ "grouped": true,
229
+ "style": {
230
+ "color": "#009688",
231
+ "pattern": "solid",
232
+ "thicknessThresholds": [2, 4, 8]
233
+ },
234
+ "visible": true,
235
+ "labels": ["protocol", "as"],
236
+ "labelsOptions": {
237
+ "wrapCenterLabel": false,
238
+ "wrapLinecapLabel": false
239
+ }
240
+ }, {
241
+ "name": "ospf",
242
+ "type": "protocol",
243
+ "grouped": true,
244
+ "style": {
245
+ "color": "#ffd600",
246
+ "pattern": "solid",
247
+ "thicknessThresholds": [2, 4, 8]
248
+ },
249
+ "visible": true,
250
+ "labels": ["protocol", "intName"],
251
+ "labelsOptions": {
252
+ "wrapCenterLabel": false,
253
+ "wrapLinecapLabel": false
254
+ }
255
+ }, {
256
+ "name": "ospfv3",
257
+ "type": "protocol",
258
+ "grouped": true,
259
+ "style": {
260
+ "color": "#ffd600",
261
+ "pattern": "solid",
262
+ "thicknessThresholds": [2, 4, 8]
263
+ },
264
+ "visible": true,
265
+ "labels": ["protocol", "intName"],
266
+ "labelsOptions": {
267
+ "wrapCenterLabel": false,
268
+ "wrapLinecapLabel": false
269
+ }
270
+ }, {
271
+ "name": "eigrp",
272
+ "type": "protocol",
273
+ "grouped": true,
274
+ "style": {
275
+ "color": "#00bcd4",
276
+ "pattern": "solid",
277
+ "thicknessThresholds": [2, 4, 8]
278
+ },
279
+ "visible": true,
280
+ "labels": ["protocol", "intName"],
281
+ "labelsOptions": {
282
+ "wrapCenterLabel": false,
283
+ "wrapLinecapLabel": false
284
+ }
285
+ }, {
286
+ "name": "ldp",
287
+ "type": "protocol",
288
+ "grouped": true,
289
+ "style": {
290
+ "color": "#ff9800",
291
+ "pattern": "solid",
292
+ "thicknessThresholds": [2, 4, 8]
293
+ },
294
+ "visible": true,
295
+ "labels": ["protocol", "intName"],
296
+ "labelsOptions": {
297
+ "wrapCenterLabel": false,
298
+ "wrapLinecapLabel": false
299
+ }
300
+ }, {
301
+ "name": "pim",
302
+ "type": "protocol",
303
+ "grouped": true,
304
+ "style": {
305
+ "color": "#9d744d",
306
+ "pattern": "solid",
307
+ "thicknessThresholds": [2, 4, 8]
308
+ },
309
+ "visible": true,
310
+ "labels": ["protocol", "intName"],
311
+ "labelsOptions": {
312
+ "wrapCenterLabel": false,
313
+ "wrapLinecapLabel": false
314
+ }
315
+ }, {
316
+ "name": "rip",
317
+ "type": "protocol",
318
+ "grouped": true,
319
+ "style": {
320
+ "color": "#a1887f",
321
+ "pattern": "solid",
322
+ "thicknessThresholds": [2, 4, 8]
323
+ },
324
+ "visible": true,
325
+ "labels": ["protocol", "intName"],
326
+ "labelsOptions": {
327
+ "wrapCenterLabel": false,
328
+ "wrapLinecapLabel": false
329
+ }
330
+ }, {
331
+ "name": "isis",
332
+ "type": "protocol",
333
+ "grouped": true,
334
+ "style": {
335
+ "color": "#cddc39",
336
+ "pattern": "solid",
337
+ "thicknessThresholds": [2, 4, 8]
338
+ },
339
+ "visible": true,
340
+ "labels": ["protocol", "intName"],
341
+ "labelsOptions": {
342
+ "wrapCenterLabel": false,
343
+ "wrapLinecapLabel": false
344
+ }
345
+ }, {
346
+ "name": "vxlan",
347
+ "type": "protocol",
348
+ "grouped": true,
349
+ "style": {
350
+ "color": "#ff9999",
351
+ "pattern": "solid",
352
+ "thicknessThresholds": [2, 4, 8]
353
+ },
354
+ "visible": true,
355
+ "labels": ["protocol", "intName"],
356
+ "labelsOptions": {
357
+ "wrapCenterLabel": false,
358
+ "wrapLinecapLabel": false
359
+ }
360
+ }, {
361
+ "name": "rsvp",
362
+ "type": "protocol",
363
+ "grouped": true,
364
+ "style": {
365
+ "color": "#2693ff",
366
+ "pattern": "solid",
367
+ "thicknessThresholds": [2, 4, 8]
368
+ },
369
+ "visible": true,
370
+ "labels": ["protocol", "intName"],
371
+ "labelsOptions": {
372
+ "wrapCenterLabel": false,
373
+ "wrapLinecapLabel": false
374
+ }
375
+ }, {
376
+ "name": "ipsec",
377
+ "type": "protocol",
378
+ "grouped": true,
379
+ "style": {
380
+ "color": "#e926ff",
381
+ "pattern": "solid",
382
+ "thicknessThresholds": [2, 4, 8]
383
+ },
384
+ "visible": true,
385
+ "labels": ["protocol", "intName"],
386
+ "labelsOptions": {
387
+ "wrapCenterLabel": false,
388
+ "wrapLinecapLabel": false
389
+ }
390
+ }
391
+ ],
392
+ "visible": true,
393
+ "labelsOptions": {
394
+ "wrapCenterLabel": false,
395
+ "wrapLinecapLabel": false
396
+ }
397
+ }
398
+ ]