aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2020-01-02 22:32:57 +0100
committerPaul Vinciguerra <pvinci@vinciconsulting.com>2020-01-03 03:57:29 +0000
commite774a8b38983d9848f71efdb1bb0c41ba36039f3 (patch)
treeeae174f6c8ca10d8fa6e72060f09ba6a3fa39251 /src
parent8ef8f8f7937ba2939ea0550e832eaa77d0c73203 (diff)
nat: add feature.yaml
And add support for multiple maintainers in JSON schema. Type: docs Change-Id: Ice430927ceecf53526a3fdf46c075a95206bf0ac Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/nat/FEATURE.yaml27
-rwxr-xr-xsrc/scripts/fts.py18
2 files changed, 42 insertions, 3 deletions
diff --git a/src/plugins/nat/FEATURE.yaml b/src/plugins/nat/FEATURE.yaml
new file mode 100644
index 00000000000..65cd9590c69
--- /dev/null
+++ b/src/plugins/nat/FEATURE.yaml
@@ -0,0 +1,27 @@
+---
+name: Network Address Translation (NAT)
+maintainer:
+ - Ole Troan <ot@cisco.com>
+ - Filip Varga <fivarga@cisco.com>
+features:
+ - NAT44:
+ - 1:1 NAT
+ - 1:1 NAT with ports
+ - VRF awareness
+ - Multiple inside interfaces
+ - Hairpinning
+ - IPFIX
+ - Syslog
+ - Endpoint dependent NAT
+ - TCP MSS clamping
+ - Local bypass (DHCP)
+ - CGN - deterministic NAT
+ - NAT64
+ - NAT66
+ - DS-lite
+ - 464XLAT
+description: "The NAT plugin offers a multiple address translation functions.
+ These can be used in a raft of different scenarios. CPE, CGN,
+ etc."
+state: production
+properties: [API, CLI, STATS, MULTITHREAD]
diff --git a/src/scripts/fts.py b/src/scripts/fts.py
index eb44be9a59a..f3165ced0cd 100755
--- a/src/scripts/fts.py
+++ b/src/scripts/fts.py
@@ -17,9 +17,9 @@ schema = {
"properties": {
"name": {"type": "string"},
"description": {"type": "string"},
- "maintainer": {"type": "string"},
+ "maintainer": {"$ref": "#/definitions/maintainers"},
"state": {"type": "string",
- "enum": ["production", "experimental"]},
+ "enum": ["production", "experimental", "development"]},
"features": {"$ref": "#/definitions/features"},
"missing": {"$ref": "#/definitions/features"},
"properties": {"type": "array",
@@ -30,6 +30,14 @@ schema = {
},
"additionalProperties": False,
"definitions": {
+ "maintainers": {
+ "anyof": [{
+ "type": "array",
+ "items": {"type": "string"},
+ "minItems": 1,
+ },
+ {"type": "string"}],
+ },
"featureobject": {
"type": "object",
"patternProperties": {
@@ -86,7 +94,11 @@ def output_features(indent, fl):
def output_markdown(features):
for k, v in features.items():
print('# {}'.format(v['name']))
- print('Maintainer: {} '.format(v['maintainer']))
+ if type(v['maintainer']) is list:
+ print('Maintainers: ' +
+ ', '.join('{}'.format(m) for m in v['maintainer']))
+ else:
+ print('Maintainer: {} '.format(v['maintainer']))
print('State: {}\n'.format(v['state']))
print('{}\n'.format(v['description']))
output_features(0, v['features'])