Skip to content

Commit

Permalink
Feat(eos_cli_config_gen): Implement platform sfe cpu allocation maxim…
Browse files Browse the repository at this point in the history
…um (#3287)
  • Loading branch information
gmuloc authored Oct 25, 2023
1 parent 7559cbb commit 7dc54ea
Show file tree
Hide file tree
Showing 14 changed files with 127 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ interface Management1
| 1 | 7 |
| 2 | 15 |

#### Platform Software Forwarding Engine Summary

| Settings | Value |
| -------- | ----- |
| Maximum CPU Allocation | 42 |

### Platform Configuration

```eos
Expand All @@ -98,4 +104,5 @@ platform sand lag hardware-only
platform sand lag mode 512x32
platform sand forwarding mode arad
platform sand multicast replication default ingress
platform sfe data-plane cpu allocation maximum 42
```
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ platform sand lag hardware-only
platform sand lag mode 512x32
platform sand forwarding mode arad
platform sand multicast replication default ingress
platform sfe data-plane cpu allocation maximum 42
!
no enable password
no aaa root
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,5 @@ platform:
multicast_replication:
default: ingress
forwarding_mode: arad
sfe:
data_plane_cpu_allocation_max: 42
Original file line number Diff line number Diff line change
Expand Up @@ -210,16 +210,16 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;storm_control</samp>](## "ethernet_interfaces.[].storm_control") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all</samp>](## "ethernet_interfaces.[].storm_control.all") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "ethernet_interfaces.[].storm_control.all.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.all.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.all.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast</samp>](## "ethernet_interfaces.[].storm_control.broadcast") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "ethernet_interfaces.[].storm_control.broadcast.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.broadcast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.broadcast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multicast</samp>](## "ethernet_interfaces.[].storm_control.multicast") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "ethernet_interfaces.[].storm_control.multicast.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.multicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.multicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unknown_unicast</samp>](## "ethernet_interfaces.[].storm_control.unknown_unicast") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "ethernet_interfaces.[].storm_control.unknown_unicast.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.unknown_unicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "ethernet_interfaces.[].storm_control.unknown_unicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;logging</samp>](## "ethernet_interfaces.[].logging") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event</samp>](## "ethernet_interfaces.[].logging.event") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_status</samp>](## "ethernet_interfaces.[].logging.event.link_status") | Boolean | | | | |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

| Variable | Type | Required | Default | Value Restrictions | Description |
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [<samp>platform</samp>](## "platform") | Dictionary | | | | |
| [<samp>platform</samp>](## "platform") | Dictionary | | | | Every key below this point is platform dependent. |
| [<samp>&nbsp;&nbsp;trident</samp>](## "platform.trident") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;forwarding_table_partition</samp>](## "platform.trident.forwarding_table_partition") | String | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;mmu</samp>](## "platform.trident.mmu") | Dictionary | | | | Memory Management Unit settings.<br> |
Expand All @@ -30,7 +30,7 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drop</samp>](## "platform.trident.mmu.queue_profiles.[].unicast_queues.[].drop") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;precedence</samp>](## "platform.trident.mmu.queue_profiles.[].unicast_queues.[].drop.precedence") | Integer | Required | | Valid Values:<br>- 1<br>- 2 | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;threshold</samp>](## "platform.trident.mmu.queue_profiles.[].unicast_queues.[].drop.threshold") | String | Required | | | Drop Treshold. This value may also be fractions.<br>Example: 7/8 or 3/4 or 1/2<br> |
| [<samp>&nbsp;&nbsp;sand</samp>](## "platform.sand") | Dictionary | | | | Most of the platform sand options are hardware dependant and optional |
| [<samp>&nbsp;&nbsp;sand</samp>](## "platform.sand") | Dictionary | | | | Most of the platform sand options are hardware dependent and optional |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;qos_maps</samp>](## "platform.sand.qos_maps") | List, items: Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- traffic_class</samp>](## "platform.sand.qos_maps.[].traffic_class") | Integer | | | Min: 0<br>Max: 7 | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to_network_qos</samp>](## "platform.sand.qos_maps.[].to_network_qos") | Integer | | | Min: 0<br>Max: 63 | |
Expand All @@ -40,6 +40,8 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;forwarding_mode</samp>](## "platform.sand.forwarding_mode") | String | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;multicast_replication</samp>](## "platform.sand.multicast_replication") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default</samp>](## "platform.sand.multicast_replication.default") | String | | | Valid Values:<br>- ingress<br>- egress | |
| [<samp>&nbsp;&nbsp;sfe</samp>](## "platform.sfe") | Dictionary | | | | Sfe (Software Forwarding Engine) settings. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;data_plane_cpu_allocation_max</samp>](## "platform.sfe.data_plane_cpu_allocation_max") | Integer | | | Min: 1<br>Max: 128 | Maximum number of CPUs used for data plane traffic forwarding. |

=== "YAML"

Expand Down Expand Up @@ -77,4 +79,6 @@
forwarding_mode: <str>
multicast_replication:
default: <str>
sfe:
data_plane_cpu_allocation_max: <int>
```
Original file line number Diff line number Diff line change
Expand Up @@ -82,16 +82,16 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;storm_control</samp>](## "port_channel_interfaces.[].storm_control") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all</samp>](## "port_channel_interfaces.[].storm_control.all") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "port_channel_interfaces.[].storm_control.all.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.all.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.all.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast</samp>](## "port_channel_interfaces.[].storm_control.broadcast") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "port_channel_interfaces.[].storm_control.broadcast.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.broadcast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.broadcast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multicast</samp>](## "port_channel_interfaces.[].storm_control.multicast") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "port_channel_interfaces.[].storm_control.multicast.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.multicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.multicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unknown_unicast</samp>](## "port_channel_interfaces.[].storm_control.unknown_unicast") | Dictionary | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level</samp>](## "port_channel_interfaces.[].storm_control.unknown_unicast.level") | String | | | | Configure maximum storm-control level |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.unknown_unicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependant |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unit</samp>](## "port_channel_interfaces.[].storm_control.unknown_unicast.unit") | String | | `percent` | Valid Values:<br>- percent<br>- pps | Optional field and is hardware dependent |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;ip_proxy_arp</samp>](## "port_channel_interfaces.[].ip_proxy_arp") | Boolean | | | | |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;isis_enable</samp>](## "port_channel_interfaces.[].isis_enable") | String | | | | ISIS instance |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;isis_passive</samp>](## "port_channel_interfaces.[].isis_passive") | Boolean | | | | |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3276,7 +3276,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand All @@ -3301,7 +3301,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand All @@ -3326,7 +3326,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand All @@ -3351,7 +3351,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand Down Expand Up @@ -9808,6 +9808,7 @@
},
"platform": {
"type": "object",
"description": "Every key below this point is platform dependent.",
"properties": {
"trident": {
"type": "object",
Expand Down Expand Up @@ -9997,7 +9998,7 @@
},
"sand": {
"type": "object",
"description": "Most of the platform sand options are hardware dependant and optional",
"description": "Most of the platform sand options are hardware dependent and optional",
"properties": {
"qos_maps": {
"type": "array",
Expand Down Expand Up @@ -10070,6 +10071,24 @@
"^_.+$": {}
},
"title": "Sand"
},
"sfe": {
"type": "object",
"description": "Sfe (Software Forwarding Engine) settings.",
"properties": {
"data_plane_cpu_allocation_max": {
"type": "integer",
"description": "Maximum number of CPUs used for data plane traffic forwarding.",
"minimum": 1,
"maximum": 128,
"title": "Data Plane CPU Allocation Max"
}
},
"additionalProperties": false,
"patternProperties": {
"^_.+$": {}
},
"title": "Sfe"
}
},
"additionalProperties": false,
Expand Down Expand Up @@ -10797,7 +10816,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand All @@ -10822,7 +10841,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand All @@ -10847,7 +10866,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand All @@ -10872,7 +10891,7 @@
"percent",
"pps"
],
"description": "Optional field and is hardware dependant",
"description": "Optional field and is hardware dependent",
"title": "Unit"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1968,7 +1968,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
broadcast:
type: dict
keys:
Expand All @@ -1984,7 +1984,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
multicast:
type: dict
keys:
Expand All @@ -2000,7 +2000,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
unknown_unicast:
type: dict
keys:
Expand All @@ -2016,7 +2016,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
logging:
type: dict
keys:
Expand Down Expand Up @@ -5845,6 +5845,7 @@ keys:
Example: "as-range 1-100 result accept"'
platform:
type: dict
description: Every key below this point is platform dependent.
keys:
trident:
type: dict
Expand Down Expand Up @@ -5998,7 +5999,7 @@ keys:
'
sand:
type: dict
description: Most of the platform sand options are hardware dependant and
description: Most of the platform sand options are hardware dependent and
optional
keys:
qos_maps:
Expand Down Expand Up @@ -6035,6 +6036,17 @@ keys:
valid_values:
- ingress
- egress
sfe:
type: dict
description: Sfe (Software Forwarding Engine) settings.
keys:
data_plane_cpu_allocation_max:
type: int
description: Maximum number of CPUs used for data plane traffic forwarding.
convert_types:
- str
min: 1
max: 128
poe:
type: dict
keys:
Expand Down Expand Up @@ -6496,7 +6508,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
broadcast:
type: dict
keys:
Expand All @@ -6512,7 +6524,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
multicast:
type: dict
keys:
Expand All @@ -6528,7 +6540,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
unknown_unicast:
type: dict
keys:
Expand All @@ -6544,7 +6556,7 @@ keys:
valid_values:
- percent
- pps
description: Optional field and is hardware dependant
description: Optional field and is hardware dependent
ip_proxy_arp:
type: bool
isis_enable:
Expand Down
Loading

0 comments on commit 7dc54ea

Please sign in to comment.