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>
This commit is contained in:

committed by
Paul Vinciguerra

parent
8ef8f8f793
commit
e774a8b389
27
src/plugins/nat/FEATURE.yaml
Normal file
27
src/plugins/nat/FEATURE.yaml
Normal file
@ -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]
|
@ -17,9 +17,9 @@ schema = {
|
|||||||
"properties": {
|
"properties": {
|
||||||
"name": {"type": "string"},
|
"name": {"type": "string"},
|
||||||
"description": {"type": "string"},
|
"description": {"type": "string"},
|
||||||
"maintainer": {"type": "string"},
|
"maintainer": {"$ref": "#/definitions/maintainers"},
|
||||||
"state": {"type": "string",
|
"state": {"type": "string",
|
||||||
"enum": ["production", "experimental"]},
|
"enum": ["production", "experimental", "development"]},
|
||||||
"features": {"$ref": "#/definitions/features"},
|
"features": {"$ref": "#/definitions/features"},
|
||||||
"missing": {"$ref": "#/definitions/features"},
|
"missing": {"$ref": "#/definitions/features"},
|
||||||
"properties": {"type": "array",
|
"properties": {"type": "array",
|
||||||
@ -30,6 +30,14 @@ schema = {
|
|||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
"maintainers": {
|
||||||
|
"anyof": [{
|
||||||
|
"type": "array",
|
||||||
|
"items": {"type": "string"},
|
||||||
|
"minItems": 1,
|
||||||
|
},
|
||||||
|
{"type": "string"}],
|
||||||
|
},
|
||||||
"featureobject": {
|
"featureobject": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"patternProperties": {
|
"patternProperties": {
|
||||||
@ -86,7 +94,11 @@ def output_features(indent, fl):
|
|||||||
def output_markdown(features):
|
def output_markdown(features):
|
||||||
for k, v in features.items():
|
for k, v in features.items():
|
||||||
print('# {}'.format(v['name']))
|
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('State: {}\n'.format(v['state']))
|
||||||
print('{}\n'.format(v['description']))
|
print('{}\n'.format(v['description']))
|
||||||
output_features(0, v['features'])
|
output_features(0, v['features'])
|
||||||
|
Reference in New Issue
Block a user