CLI commands — python-neutronclient — branch stable/2026.2
Branch
stable/2026.2@596a9d99b188(14.0.0+ 2 maintenance commits) — repository https://opendev.org/openstack/python-neutronclient — analysed on 2026-11-01
This package exposes no API of its own. Its interface is 34 commands of the openstack CLI and a Python class. [observed] means seen against the local stub, which is not Neutron.
1. Shared mechanics
Plugin loading
- OSC collects the modules of the entry point group
openstack.cli.extension(openstackclient:openstackclient/common/clientmanager.py:279). This package declaresneutronclient = neutronclient.osc.plugin(setup.cfg:32). - The module attributes drive the rest (
neutronclient/osc/plugin.py:26-35):API_NAME = 'neutronclient',API_VERSION_OPTION = 'os_network_api_version',DEFAULT_API_VERSION = '2.0'. A comment there explains whyAPI_NAMEmust not benetwork: OSC owns that name. - Each plugin module's name becomes an attribute of the client manager, built lazily by
make_client(openstackclient:openstackclient/common/clientmanager.py:251). This givesclient_manager.neutronclient. - The version comes from
network_api_versionin the cloud config, shared with OSC's own network commands (openstackclient:openstackclient/shell.py:101). The SDK default is"2"(openstacksdk:openstack/config/defaults.json:12), and--os-network-api-versionoverrides it (openstackclient:openstackclient/network/client.py:51). - The command group is
openstack.<api>.v<major>(openstackclient:openstackclient/shell.py:150), henceopenstack.neutronclient.v2. - Consequence [observed]:
--os-network-api-version 3logsneutronclient API version 3 is not in supported versions: 2, 2.0and the groupopenstack.neutronclient.v3does not exist, sonetwork log listgives'network log list' is not a … command, exit 2. The warning does not stop anything: only the absent group does. - cliff skips an entry point whose module is in
IGNORED_MODULES(cliff:cliff/commandmanager.py:135). None of the 34 entry points matches a listed module. No name collides with another group in the venv, so the duplicate warning atcliff:cliff/commandmanager.py:156does not fire [observed by listing the entry points of the 8 plugins and OSC].
The two client stacks
| Commands | Attribute | Client | Lookup of a name | Where |
|---|---|---|---|---|
27 sfc * | client_manager.network | openstacksdk Proxy | find_sfc_*(name, ignore_missing=False): GET /x/{name}, then on 404 GET /x?name= | neutronclient/osc/v2/sfc/sfc_port_chain.py:94, openstacksdk:openstack/resource.py:2492 |
7 network log *, network loggable resources list, network onboard subnets | client_manager.neutronclient | neutronclient.v2_0.client.Client | find_resource: GET /x?id= only when the value looks like a UUID, then GET /x?name= | neutronclient/osc/v2/logging/network_log.py:175, neutronclient/v2_0/client.py:476 |
network log create --project | client_manager.identity | python-keystoneclient | GET /projects/{name}, then GET /projects?name= [observed]; on 403 the name is used as the ID | neutronclient/osc/utils.py:81-116 |
How the plugin builds the binding (neutronclient/osc/plugin.py:38-54): session, region_name and interface come from the client manager. insecure and ca_cert are passed and then ignored, because a session is given (neutronclient/client.py:410-417). There is no version and no service name, so the endpoint is the catalog URL of type network and the class appends /v2.0 (neutronclient/v2_0/client.py:260).
What the commands share
- Output:
command.ShowOne,command.Listerorcommand.Commandfrom osc-lib. The 15command.Commandclasses all returnNone(checked by AST), so none has the exit-code defect of OSC'sfederation protocol set. - Columns: the SFC commands display an SDK resource through
get_osc_show_columns_for_sdk_resource(osc-lib:osc_lib/utils/__init__.py:821) withlocationandtenant_idhidden (neutronclient/osc/v2/sfc/sfc_port_chain.py:97). The log commands usecolumn_util.get_columnson a dict (neutronclient/osc/v2/logging/network_log.py:153), so only keys in the response appear. - Multiple delete: all 6 delete commands loop, count failures, log each one, then raise
N of M … failed to delete(neutronclient/osc/v2/logging/network_log.py:173-188,neutronclient/osc/v2/sfc/sfc_port_chain.py:119-133). A partial failure still deletes the others [observed]. - Update with no option: SDK commands send no
PUT, since the resource has no change (openstacksdk:openstack/resource.py:1921) and exit 0.network log setdoes sendPUT {"log": {}}[observed]. - Read-modify-write without a lock: appending to a port chain or a port pair group reads the current list, then writes the whole list (
neutronclient/osc/v2/sfc/sfc_port_chain.py:241-250,neutronclient/osc/v2/sfc/sfc_port_pair_group.py:209-213). A concurrent change is lost. NoIf-Matchis sent [observed: only the listed requests appear].
2. Functional description by family
Network logs (network log create|delete|list|set|show, network loggable resources list)
Neutron's packet logging: record accepted or dropped traffic for a security group or firewall group, optionally limited to one port.
- Actor: a project user, or an admin for another project with
--project[inferred: the policy lives in Neutron]. - create (
neutronclient/osc/v2/logging/network_log.py:108):--resource-typeis required and lower-cased (neutronclient/osc/v2/logging/network_log.py:132). It has nochoiceson purpose: the list comes fromnetwork loggable resources list(comment atneutronclient/osc/v2/logging/network_log.py:125).--resourceis looked up through the methodlist_<type>sof the class. Forfirewall_group, the command usesfwaas_firewall_group, soGET /fwaas/firewall_groups?name=(neutronclient/osc/v2/logging/network_log.py:84-89) [observed]. That method survives in the class although the FWaaS commands left. Any other type without a method fails on the client, see 02 § 4.--targetis always a port (neutronclient/osc/v2/logging/network_log.py:93).--eventis upper-cased, then checked againstALL,ACCEPT,DROP.--enableand--disableare exclusive. Without them,enabledis not sent, and the help says the default is enabled, a server default [inferred].
- list (
neutronclient/osc/v2/logging/network_log.py:211): no filter is sent (TODOatneutronclient/osc/v2/logging/network_log.py:221). It builds theSummarycolumn on the client (neutronclient/osc/v2/logging/network_log.py:224-244):Event: DROP,\nLogged: (security_group) <id> on (port) <id>. This requires the keysevent,target_id,resource_typeandresource_id. - set (
neutronclient/osc/v2/logging/network_log.py:256):--name,--description,--enable,--disable. An empty string is dropped, see 02 § 4. - loggable resources list (
neutronclient/osc/v2/logging/network_log.py:191):--longexists and changes nothing, since the only column isLIST_BOTH(neutronclient/osc/v2/logging/network_log.py:45).
Subnet onboarding (network onboard subnets)
Moves all the subnets of a network into a subnet pool (neutronclient/osc/v2/subnet_onboard/subnet_onboard.py:28).
- Lookup: first the subnet pool, then the network, through
find_resource[observed]. A lookup failure is not wrapped and showsUnable to find subnetpool with name or id 'pool'. PUT /v2.0/subnetpools/{id}/onboard_network_subnetswith{"network_id": "<id>"}(neutronclient/v2_0/client.py:2536).- A failure of the
PUTbecomesFailed to onboard subnets for network 'net': m(neutronclient/osc/v2/subnet_onboard/subnet_onboard.py:50-55). On success the command prints nothing and ignores the response body.
SFC (service function chaining)
Steering traffic through a chain of network functions. The resources build on each other: a flow classifier selects traffic, a port pair is one function instance (ingress and egress port), a port pair group balances between pairs, a port chain is an ordered list of groups fed by classifiers, and a service graph links chains.
- Flow classifier (
neutronclient/osc/v2/sfc/sfc_flow_classifier.py:79):--ethertypedefaults toIPv4and is always sent (neutronclient/osc/v2/sfc/sfc_flow_classifier.py:308) [observed].--source-portand--destination-portaccepta:bora; a lone value gives min = max (neutronclient/osc/v2/sfc/sfc_flow_classifier.py:332-346). The check happens after parsing, so the exit code is 1, not 2.--logical-source-portand--logical-destination-portare looked up withfind_port(neutronclient/osc/v2/sfc/sfc_flow_classifier.py:314-321).--l7-parametersis sent as a raw string, though its help says that no value is supported (neutronclient/osc/v2/sfc/sfc_flow_classifier.py:328) [observed].setonly changes the name and description (neutronclient/osc/v2/sfc/sfc_flow_classifier.py:294-302).listbuilds aSummarycolumn on the client, and needsl7_parametersto be iterable (neutronclient/osc/v2/sfc/sfc_flow_classifier.py:190-211).
- Port pair (
neutronclient/osc/v2/sfc/sfc_port_pair.py:53):--ingressand--egressare required port lookups.--service-function-parameters correlation=…,weight=…: the textNonebecomes JSONnull, andweightstays a string on the wire (neutronclient/osc/v2/sfc/sfc_port_pair.py:241-251) [observed:"weight": "2"].setonly changes the name and description. - Port pair group (
neutronclient/osc/v2/sfc/sfc_port_pair_group.py:53):--port-paircan repeat;--enable-tapand--disable-tapmap totap_enabled.--port-pair-group-parameters lb-fields=a&bbecomes{"lb_fields": ["a", "b"]}; other keys pass unchanged (neutronclient/osc/v2/sfc/sfc_port_pair_group.py:291-299) [observed].set --port-pairmerges with the existing list and sorts it (neutronclient/osc/v2/sfc/sfc_port_pair_group.py:213);--no-port-pairstarts from empty.unsetcomputes a set difference, so the order is not stable (neutronclient/osc/v2/sfc/sfc_port_pair_group.py:280).
- Port chain (
neutronclient/osc/v2/sfc/sfc_port_chain.py:54):--port-pair-groupis required on create and its order is the chain's.--chain-parameters correlation=…,symmetric=…:symmetricstays a string (neutronclient/osc/v2/sfc/sfc_port_chain.py:373-381) [observed:"symmetric": "true"].set --port-pair-groupappends to the existing list; with--no-port-pair-groupit replaces it, and that option alone is refused (neutronclient/osc/v2/sfc/sfc_port_chain.py:227-250).unsetrefuses to remove the last group, before any write (neutronclient/osc/v2/sfc/sfc_port_chain.py:340-343).- Each name is resolved more than once:
sfc port chain set x --port-pair-group y --flow-classifier zsends 7GETbefore thePUT[observed].
- Service graph (
neutronclient/osc/v2/sfc/sfc_service_graph.py:46):--branching-point SRC:DST1,DST2can repeat and becomes{"port_chains": {"<src-id>": ["<dst-id>", …]}}. The client refuses a missing colon, a duplicate destination, an empty destination, a reused source, and some cycles (neutronclient/osc/v2/sfc/sfc_service_graph.py:210-272).setonly changes the name and description.
3. The Python API used by the commands
| Method | Request | Used by | Defined at |
|---|---|---|---|
find_resource(resource, name_or_id, project_id, cmd_resource, parent_id, fields) | GET …?id= if the value starts with a UUID, then GET …?name= | 6 commands | neutronclient/v2_0/client.py:476 |
create_network_log(body) | POST /log/logs | network log create | neutronclient/v2_0/client.py:2510 |
delete_network_log(id) | DELETE /log/logs/{id} | network log delete | neutronclient/v2_0/client.py:2514 |
list_network_logs() | GET /log/logs, following logs_links | network log list, lookups | neutronclient/v2_0/client.py:2518 |
show_network_log(id) | GET /log/logs/{id} | network log show | neutronclient/v2_0/client.py:2523 |
update_network_log(id, body) | PUT /log/logs/{id} | network log set | neutronclient/v2_0/client.py:2527 |
list_network_loggable_resources() | GET /log/loggable-resources | network loggable resources list | neutronclient/v2_0/client.py:2531 |
onboard_network_subnets(pool, body) | PUT /subnetpools/{id}/onboard_network_subnets | network onboard subnets | neutronclient/v2_0/client.py:2536 |
list_ports, list_networks, list_subnetpools, list_security_groups, list_fwaas_firewall_groups | GET on the collection, by find_resource | lookups | neutronclient/v2_0/client.py:815, neutronclient/v2_0/client.py:860, neutronclient/v2_0/client.py:905, neutronclient/v2_0/client.py:1064, neutronclient/v2_0/client.py:1741 |
The class holds SFC methods too (neutronclient/v2_0/client.py:530), but the SFC commands use the SDK, so those methods are not on the path of any command. The rest of the class is in the API surface.
No legacy CLI process exists. neutronclient/neutron/v2_0/ keeps the command classes (neutronclient/neutron/v2_0/__init__.py:321), and neutronclient/common/clientmanager.py:40 and neutronclient/neutron/client.py:27 keep its client factory. None has an entry point. neutronclient/common/extension.py:18 imports the base module, so importing the class also loads it [observed].
4. The 34 commands
Generated from the parser dump and the probes. "Rich" answers come from a stub with hand-written resources; arguments are synthetic.
network log create
Create a new network log. Class CreateNetworkLog, neutronclient/osc/v2/logging/network_log.py:108. Output: single. Client: identity, neutronclient. Unit vectors: 12. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
name | yes | Store | Name for the network log | ||
--description | Store | Description of the network log | |||
--enable | StoreTrue exclusive group 0 | Enable this log | |||
--disable | StoreTrue exclusive group 0 | Disable this log (default is enabled) | |||
--project | Store | Owner's project (name or ID) | |||
--project-domain | Store | Domain the project belongs to (name or ID). This can be used in case collisions between project names exist. | |||
--event | Store convert_to_uppercase | ALL, ACCEPT, DROP | An event to store with log | ||
--resource-type | yes | Store convert_to_lowercase | Network log type(s). You can see supported type(s) with following command: $ openstack network loggable resources list | ||
--resource | Store | Name or ID of resource (security group or firewall group) that used for logging. You can control for logging target combination with --target option. | |||
--target | Store | Port (name or ID) for logging. You can control for logging target combination with --resource option. |
Requests with the minimum arguments, rich stub [observed]: POST /network/v2.0/log/logs.
Body with all options [observed]: {"log": {"description": "x", "enabled": true, "event": "DROP", "name": "x", "resource_id": "11111111-2222-4333-8444-555555555555", "resource_type": "security_group", "target_id": "11111111-2222-4333-8444-555555555555"}}
network log delete
Delete network log(s). Class DeleteNetworkLog, neutronclient/osc/v2/logging/network_log.py:158. Output: none. Client: neutronclient. Unit vectors: 3. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
network_log | yes | Store nargs=+ | Network log(s) to delete (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/log/logs?name; DELETE /network/v2.0/log/logs/{id}.
network log list
List network logs. Class ListNetworkLog, neutronclient/osc/v2/logging/network_log.py:211. Output: list. Client: neutronclient. Unit vectors: 5. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/log/logs.
network log set
Set network log properties. Class SetNetworkLog, neutronclient/osc/v2/logging/network_log.py:256. Output: none. Client: identity, neutronclient. Unit vectors: 10. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
network_log | yes | Store | Network log to set (name or ID) | ||
--description | Store | Description of the network log | |||
--enable | StoreTrue exclusive group 0 | Enable this log | |||
--disable | StoreTrue exclusive group 0 | Disable this log (default is enabled) | |||
--name | Store | Name of the network log |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/log/logs?name; PUT /network/v2.0/log/logs/{id}.
Body with all options [observed]: {"log": {"description": "x", "enabled": true, "name": "x"}}
network log show
Display network log details. Class ShowNetworkLog, neutronclient/osc/v2/logging/network_log.py:286. Output: single. Client: neutronclient. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
network_log | yes | Store | Network log to show (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/log/logs?name; GET /network/v2.0/log/logs/{id}.
network loggable resources list
List supported loggable resources. Class ListLoggableResource, neutronclient/osc/v2/logging/network_log.py:191. Output: list. Client: neutronclient. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/log/loggable-resources.
network onboard subnets
Onboard network subnets into a subnet pool. Class NetworkOnboardSubnets, neutronclient/osc/v2/subnet_onboard/subnet_onboard.py:28. Output: none. Client: neutronclient. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
network | yes | Store | Onboard all subnets associated with this network | ||
subnetpool | yes | Store | Target subnet pool for onboarding subnets |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/subnetpools?name; GET /network/v2.0/networks?name; PUT /network/v2.0/subnetpools/{id}/onboard_network_subnets.
Body with all options [observed]: {"network_id": "11111111-2222-4333-8444-555555555555"}
sfc flow classifier create
Create a flow classifier. Class CreateSfcFlowClassifier, neutronclient/osc/v2/sfc/sfc_flow_classifier.py:79. Output: single. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
name | yes | Store | Name of the flow classifier | ||
--description | Store | Description for the flow classifier | |||
--protocol | Store | IP protocol name. Protocol name should be as per IANA standard. | |||
--ethertype | Store | IPv4 | IPv4, IPv6 | L2 ethertype, default is IPv4 | |
--source-port | Store | Source protocol port (allowed range [1,65535]. Must be specified as a:b, where a=min-port and b=max-port) in the allowed range. | |||
--destination-port | Store | Destination protocol port (allowed range [1,65535]. Must be specified as a:b, where a=min-port and b=max-port) in the allowed range. | |||
--source-ip-prefix | Store | Source IP address in CIDR notation | |||
--destination-ip-prefix | Store | Destination IP address in CIDR notation | |||
--logical-source-port | Store | Neutron source port (name or ID) | |||
--logical-destination-port | Store | Neutron destination port (name or ID) | |||
--l7-parameters | Store | Dictionary of L7 parameters. Currently, no value is supported for this option. |
Requests with the minimum arguments, rich stub [observed]: POST /network/v2.0/sfc/flow_classifiers.
Body with all options [observed]: {"flow_classifier": {"description": "x", "destination_ip_prefix": "10.0.1.0/24", "destination_port_range_max": 3, "destination_port_range_min": 3, "ethertype": "IPv4", "logical_destination_port": "11111111-2222-4333-8444-555555555555", "logical_source_port": "11111111-2222-4333-8444-555555555555", "name": "x", "protocol": "tcp", "source_ip_prefix": "10.0.0.0/24", "source_port_range_max": 2, "source_port_range_min": 1}}
sfc flow classifier delete
Delete a given flow classifier. Class DeleteSfcFlowClassifier, neutronclient/osc/v2/sfc/sfc_flow_classifier.py:146. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
flow_classifier | yes | Store nargs=+ | Flow classifier(s) to delete (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/flow_classifiers/{name}; DELETE /network/v2.0/sfc/flow_classifiers/{id}.
sfc flow classifier list
List flow classifiers. Class ListSfcFlowClassifier, neutronclient/osc/v2/sfc/sfc_flow_classifier.py:178. Output: list. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/flow_classifiers.
sfc flow classifier set
Set flow classifier properties. Class SetSfcFlowClassifier, neutronclient/osc/v2/sfc/sfc_flow_classifier.py:237. Output: none. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
flow_classifier | yes | Store | Flow classifier to modify (name or ID) | ||
--name | Store | Name of the flow classifier | |||
--description | Store | Description for the flow classifier |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/flow_classifiers/{name}.
Body with all options [observed]: {"flow_classifier": {"description": "x", "name": "x"}}
sfc flow classifier show
Display flow classifier details. Class ShowSfcFlowClassifier, neutronclient/osc/v2/sfc/sfc_flow_classifier.py:271. Output: single. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
flow_classifier | yes | Store | Flow classifier to display (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/flow_classifiers/{name}; GET /network/v2.0/sfc/flow_classifiers/{id}.
sfc port chain create
Create a port chain. Class CreateSfcPortChain, neutronclient/osc/v2/sfc/sfc_port_chain.py:54. Output: single. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
name | yes | Store | Name of the port chain | ||
--description | Store | Description for the port chain | |||
--flow-classifier | Append | [] | Add flow classifier (name or ID). This option can be repeated. | ||
--chain-parameters | MultiKeyValue | Dictionary of chain parameters. Supports correlation=(mpls|nsh) (default is mpls) and symmetric=(true|false). | |||
--port-pair-group | yes | Append | Add port pair group (name or ID). This option can be repeated. |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pair_groups/{name}; POST /network/v2.0/sfc/port_chains.
Body with all options [observed]: {"port_chain": {"chain_parameters": {"correlation": "nsh", "symmetric": "true"}, "description": "x", "flow_classifiers": ["11111111-2222-4333-8444-555555555555"], "name": "x", "port_pair_groups": ["11111111-2222-4333-8444-555555555555"]}}
sfc port chain delete
Delete a given port chain. Class DeleteSfcPortChain, neutronclient/osc/v2/sfc/sfc_port_chain.py:103. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_chain | yes | Store nargs=+ | Port chain(s) to delete (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_chains/{name}; DELETE /network/v2.0/sfc/port_chains/{id}.
sfc port chain list
List port chains. Class ListSfcPortChain, neutronclient/osc/v2/sfc/sfc_port_chain.py:136. Output: list. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_chains.
sfc port chain set
Set port chain properties. Class SetSfcPortChain, neutronclient/osc/v2/sfc/sfc_port_chain.py:159. Output: none. Client: openstacksdk. Unit vectors: 6. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_chain | yes | Store | Port chain to modify (name or ID) | ||
--name | Store | Name of the port chain | |||
--description | Store | Description for the port chain | |||
--flow-classifier | Append | Add flow classifier (name or ID). This option can be repeated. | |||
--no-flow-classifier | StoreTrue | Remove associated flow classifiers from the port chain | |||
--port-pair-group | Append | Add port pair group (name or ID). Current port pair groups order is kept, the added port pair group will be placed at the end of the port chain. This option can be repeat | |||
--no-port-pair-group | StoreTrue | Remove associated port pair groups from the port chain. At least one --port-pair-group must be specified together. |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_chains/{name}.
Body with all options [observed]: {"port_chain": {"description": "x", "flow_classifiers": ["11111111-2222-4333-8444-555555555555"], "name": "x", "port_pair_groups": ["11111111-2222-4333-8444-555555555555"]}}
sfc port chain show
Display port chain details. Class ShowSfcPortChain, neutronclient/osc/v2/sfc/sfc_port_chain.py:259. Output: single. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_chain | yes | Store | Port chain to display (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_chains/{name}; GET /network/v2.0/sfc/port_chains/{id}.
sfc port chain unset
Unset port chain properties. Class UnsetSfcPortChain, neutronclient/osc/v2/sfc/sfc_port_chain.py:282. Output: none. Client: openstacksdk. Unit vectors: 3. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_chain | yes | Store | Port chain to unset (name or ID) | ||
--flow-classifier | Append exclusive group 0 | Remove flow classifier(s) from the port chain (name or ID). This option can be repeated. | |||
--all-flow-classifier | StoreTrue exclusive group 0 | Remove all flow classifiers from the port chain | |||
--port-pair-group | Append | Remove port pair group(s) from the port chain (name or ID). This option can be repeated. |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_chains/{name}.
Body with all options [observed]: {"port_chain": {"flow_classifiers": [], "port_pair_groups": ["11111111-2222-4333-8444-555555555555"]}}
sfc port pair create
Create a port pair. Class CreateSfcPortPair, neutronclient/osc/v2/sfc/sfc_port_pair.py:53. Output: single. Client: openstacksdk. Unit vectors: 3. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
name | yes | Store | Name of the port pair | ||
--description | Store | Description for the port pair | |||
--service-function-parameters | MultiKeyValue | Dictionary of service function parameters. Currently, correlation=(None|mpls|nsh) and weight are supported. Weight is an integer that influences the selection of a port | |||
--ingress | yes | Store | Ingress neutron port (name or ID) | ||
--egress | yes | Store | Egress neutron port (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/ports/{name}; GET /network/v2.0/ports/{name}; POST /network/v2.0/sfc/port_pairs.
Body with all options [observed]: {"port_pair": {"description": "x", "egress": "11111111-2222-4333-8444-555555555555", "ingress": "11111111-2222-4333-8444-555555555555", "name": "x", "service_function_parameters": {"correlation": "nsh", "weight": "2"}}}
sfc port pair delete
Delete a given port pair. Class DeleteSfcPortPair, neutronclient/osc/v2/sfc/sfc_port_pair.py:99. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair | yes | Store nargs=+ | Port pair(s) to delete (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pairs/{name}; DELETE /network/v2.0/sfc/port_pairs/{id}.
sfc port pair group create
Create a port pair group. Class CreateSfcPortPairGroup, neutronclient/osc/v2/sfc/sfc_port_pair_group.py:53. Output: single. Client: openstacksdk. Unit vectors: 3. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
name | yes | Store | Name of the port pair group | ||
--description | Store | Description for the port pair group | |||
--port-pair | Append | [] | Port pair (name or ID). This option can be repeated. | ||
--enable-tap | StoreTrue exclusive group 0 | Port pairs of this port pair group are deployed as passive tap service function | |||
--disable-tap | StoreTrue exclusive group 0 | Port pairs of this port pair group are deployed as l3 service function (default) | |||
--port-pair-group-parameters | KeyValue | Dictionary of port pair group parameters. Currently only one parameter lb-fields is supported. <lb-fields> is a & separated list of load-balancing fields. |
Requests with the minimum arguments, rich stub [observed]: POST /network/v2.0/sfc/port_pair_groups.
Body with all options [observed]: {"port_pair_group": {"description": "x", "name": "x", "port_pair_group_parameters": {"lb_fields": ["ip_src", "ip_dst"]}, "port_pairs": ["11111111-2222-4333-8444-555555555555"], "tap_enabled": true}}
sfc port pair group delete
Delete a given port pair group. Class DeleteSfcPortPairGroup, neutronclient/osc/v2/sfc/sfc_port_pair_group.py:107. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair_group | yes | Store nargs=+ | Port pair group(s) to delete (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pair_groups/{name}; DELETE /network/v2.0/sfc/port_pair_groups/{id}.
sfc port pair group list
List port pair group. Class ListSfcPortPairGroup, neutronclient/osc/v2/sfc/sfc_port_pair_group.py:140. Output: list. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pair_groups.
sfc port pair group set
Set port pair group properties. Class SetSfcPortPairGroup, neutronclient/osc/v2/sfc/sfc_port_pair_group.py:164. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair_group | yes | Store | Port pair group to modify (name or ID) | ||
--name | Store | Name of the port pair group | |||
--description | Store | Description for the port pair group | |||
--port-pair | Append | [] | Port pair (name or ID). This option can be repeated. | ||
--no-port-pair | StoreTrue | Remove all port pair from port pair group |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pair_groups/{name}.
Body with all options [observed]: {"port_pair_group": {"description": "x", "name": "x", "port_pairs": ["11111111-2222-4333-8444-555555555555"]}}
sfc port pair group show
Display port pair group details. Class ShowSfcPortPairGroup, neutronclient/osc/v2/sfc/sfc_port_pair_group.py:222. Output: single. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair_group | yes | Store | Port pair group to display (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pair_groups/{name}; GET /network/v2.0/sfc/port_pair_groups/{id}.
sfc port pair group unset
Unset port pairs from port pair group. Class UnsetSfcPortPairGroup, neutronclient/osc/v2/sfc/sfc_port_pair_group.py:245. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair_group | yes | Store | Port pair group to unset (name or ID) | ||
--port-pair | Append exclusive group 0 | Remove port pair(s) from the port pair group (name or ID). This option can be repeated. | |||
--all-port-pair | StoreTrue exclusive group 0 | Remove all port pairs from the port pair group |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pair_groups/{name}.
Body with all options [observed]: {"port_pair_group": {"port_pairs": []}}
sfc port pair list
List port pairs. Class ListSfcPortPair, neutronclient/osc/v2/sfc/sfc_port_pair.py:133. Output: list. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pairs.
sfc port pair set
Set port pair properties. Class SetSfcPortPair, neutronclient/osc/v2/sfc/sfc_port_pair.py:156. Output: none. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair | yes | Store | Port pair to modify (name or ID) | ||
--name | Store | Name of the port pair | |||
--description | Store | Description for the port pair |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pairs/{name}.
Body with all options [observed]: {"port_pair": {"description": "x", "name": "x"}}
sfc port pair show
Display port pair details. Class ShowSfcPortPair, neutronclient/osc/v2/sfc/sfc_port_pair.py:191. Output: single. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
port_pair | yes | Store | Port pair to display (name or ID) |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_pairs/{name}; GET /network/v2.0/sfc/port_pairs/{id}.
sfc service graph create
Create a service graph. Class CreateSfcServiceGraph, neutronclient/osc/v2/sfc/sfc_service_graph.py:46. Output: single. Client: openstacksdk. Unit vectors: 5. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
name | yes | Store | Name of the service graph. | ||
--description | Store | Description for the service graph. | |||
--branching-point | yes | Append | [] | Service graph branching point: the key is the source Port Chain while the value is a list of destination Port Chains. This option can be repeated. |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/port_chains/{name}; GET /network/v2.0/sfc/port_chains/{name}; POST /network/v2.0/sfc/service_graphs.
Body with all options [observed]: {"service_graph": {"description": "x", "name": "x", "port_chains": {"11111111-2222-4333-8444-555555555555": ["9c96e6ac-51f4-5ad3-add1-5f6deffde30f"]}}}
sfc service graph delete
Delete a given service graph. Class DeleteSfcServiceGraph, neutronclient/osc/v2/sfc/sfc_service_graph.py:119. Output: none. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
service_graph | yes | Store nargs=+ | ID or name of the service graph(s) to delete. |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/service_graphs/{name}; DELETE /network/v2.0/sfc/service_graphs/{id}.
sfc service graph list
List service graphs. Class ListSfcServiceGraph, neutronclient/osc/v2/sfc/sfc_service_graph.py:153. Output: list. Client: openstacksdk. Unit vectors: 2. Exit on the stub: 404 mode 1, {} mode 1, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
--long | StoreTrue | List additional fields in output |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/service_graphs.
sfc service graph set
Set service graph properties. Class SetSfcServiceGraph, neutronclient/osc/v2/sfc/sfc_service_graph.py:84. Output: none. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
service_graph | yes | Store | Service graph to modify (name or ID) | ||
--name | Store | Name of the service graph | |||
--description | Store | Description for the service graph |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/service_graphs/{name}.
Body with all options [observed]: {"service_graph": {"description": "x", "name": "x"}}
sfc service graph show
Show information of a given service graph. Class ShowSfcServiceGraph, neutronclient/osc/v2/sfc/sfc_service_graph.py:176. Output: single. Client: openstacksdk. Unit vectors: 1. Exit on the stub: 404 mode 1, {} mode 0, rich mode 0, all options 0 [observed].
| Argument | Required | Kind | Default | Choices | Help |
|---|---|---|---|---|---|
service_graph | yes | Store | ID or name of the service graph to display. |
Requests with the minimum arguments, rich stub [observed]: GET /network/v2.0/sfc/service_graphs/{name}; GET /network/v2.0/sfc/service_graphs/{id}.
Source: reverse-spec-python-neutronclient/01-cli-commands_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.