neutron-lib/api-ref/source/v2/taas.inc
zitptan 8f066c491e Add api-ref for tap service and tap flow
Change-Id: Ib1aa1a9cd2c42dbed7442010fb0d854ce59472d3
2022-01-10 14:01:11 +01:00

430 lines
8.9 KiB
ReStructuredText

.. -*- rst -*-
================
Tap As A Service
================
TaaS plugin provides a mechanism to mirror certain traffic
(for example tagged with specific VLANs) from a source VM to any traffic analyzer VM.
When packet will be forwarded, the original value of source and target ip/ports
information will not be altered and the system administrator will be able to run,
for ex. ``tcpdump``, on the target VM to trace these packets.
TaaS plugin mainly consists of ``tap service`` and ``tap flow``.
VLAN filter
===========
The ``VLAN filtering`` for Neutron Tap as a Service allows to filter
traffic comming from ``tap-flows`` by VLAN id in case of mirroring SRIOV
ports.
Tap Service
===========
TapService represents the port to which the mirrored traffic is delivered.
List Tap Services
=================
.. rest_method:: GET /v2.0/taas/tap_services
List tap services that belong to a given project.
The list might be empty.
Normal response codes: 200
Error response codes: 401
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- project: project_id-query
- project-domain: project-domain_taas
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: tas_id
- tenant_id: project_id
- port: mirror_port_tas
- status: status_tas
Response Example
----------------
.. literalinclude:: samples/taas/tas-list-response.json
:language: javascript
Create Tap Service
==================
.. rest_method:: POST /v2.0/taas/tap_services
Create a Tap Service by passing the following JSON-encoded data.
``name``, ``monitoring port`` as mandatory parameters and
``description`` as optional parameter.
Normal response codes: 201
Error response codes: 401, 403, 404, 409
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- project: project_id-query
- project-domain: project-domain_taas
- tenant_id: project_id-query
- name: tas_name-query
- port: mirror_port_tas-query
- description: description_tas-query
Request Example
---------------
.. literalinclude:: samples/taas/tas-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: tas_id
- tenant_id: project_id
- name: tas_name
- port: mirror_port_tas
- status: status_tas
- description: description_tas
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/taas/tas-create-response.json
:language: javascript
Update Tap Service
==================
.. rest_method:: PUT /v2.0/taas/tap_services/{tap_service_id/name}
Update Tap Service by passing tap service ``name`` or ``id`` as JSON-encoded data.
Name or description or both can only be updated.
Normal response codes: 200
Error response codes: 400, 401, 404, 412
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- name: tas_name-query
- description: description_tas-query
Request Example
---------------
.. literalinclude:: samples/taas/tas-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: tas_id
- name: tas_name
- port: mirror_port_tas
- status: status_tas
- description: description_tas
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/taas/tas-update-response.json
:language: javascript
Delete Tap Service
==================
.. rest_method:: DELETE /v2.0/taas/tap_services/{tap_service_id/name}
Delete Tap Service by passing tap service ``name`` or ``id`` as JSON-encoded data.
Normal response codes: 204
Error response codes: 400, 401, 404, 412
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- name: tas_name-query
- id: tas_id-query
Response Parameters
-------------------
There is no body content for the response of a successful DELETE request.
Show Tap Service
================
.. rest_method:: GET /v2.0/taas/tap_services/{tap_service_id/name}
Show details for a tap service by passing tap service ``name`` or ``id`` as JSON-encoded data.
Normal response codes: 200
Error response codes: 401, 404
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- project: project_id-query
- project-domain: project-domain_taas
- name: tas_name-query
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: tas_id
- name: tas_name
- port: mirror_port_tas
- status: status_tas
- description: description_tas
- project_id: project_id
- tenant_id: project_id
Response Example
----------------
.. literalinclude:: samples/taas/tas-show-response.json
:language: javascript
Tap Flow
========
TapFlow represents the port from which the traffic needs to be mirrored.
It can be a port associated with VM on another cloud network.
List Tap Flow
=============
.. rest_method:: GET /v2.0/taas/tap_flows
List tap flow that belong to a given tenant.
The list might be empty.
Normal response codes: 200
Error response codes: 401
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- project: project_id-query
- project-domain: project-domain_taas
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: taf_id
- port: source_port_taf
- status: status_tas
Response Example
----------------
.. literalinclude:: samples/taas/taf-list-response.json
:language: javascript
Create Tap Flow
===============
.. rest_method:: POST /v2.0/taas/tap_flows
Create a Tap Flow by passing the following JSON-encoded data.
``name``, ``source port``, ``direction`` as ``IN/OUT/BOTH``
``tap_service`` as mandatory parameters and
``description`` as optional parameter.
Normal response codes: 201
Error response codes: 401, 403, 404, 409
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- project: project_id-query
- project-domain: project-domain_taas
- tenant_id: project_id-query
- name: taf_name-query
- port: source_port_taf-query
- tap_service: tap_service_id-query
- vlan_filter: vlan-filter_taf-query
- direction: direction_taf-query
- description: description_taf-query
Request Example
---------------
.. literalinclude:: samples/taas/taf-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: taf_id
- name: taf_name
- port: source_port_taf
- status: status_taf
- tap_service: tap_service_id
- direction: description_taf
- project_id: project_id
- tenant_id: project_id
Response Example
----------------
.. literalinclude:: samples/taas/taf-create-response.json
:language: javascript
Update Tap Flow
===============
.. rest_method:: PUT /v2.0/taas/tap_flows/{taf_service_id/name}
Update Tap Flow by passing tap flow ``name`` or ``id`` as JSON-encoded data.
Name or description or both can only be updated.
Normal response codes: 200
Error response codes: 400, 401, 404, 412
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- name: taf_name-query
- description: description_taf-query
Request Example
---------------
.. literalinclude:: samples/taas/taf-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: taf_id
- name: taf_name
- port: source_port_taf
- status: status_tas
- tap_service: tap_service_id
- direction: description_taf
- project_id: project_id
- tenant_id: project_id
Response Example
----------------
.. literalinclude:: samples/taas/taf-update-response.json
:language: javascript
Delete Tap Flow
===============
.. rest_method:: DELETE /v2.0/taas/tap_flows/{tap_service_id/name}
Delete Tap Flow by passing tap flow ``name`` or ``id`` as JSON-encoded data.
Normal response codes: 204
Error response codes: 400, 401, 404, 412
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- id: taf_id-query
- name: taf_name-query
Response Parameters
-------------------
On successful ``DELETE`` request ``Tap flow {tap_flow_id} deleted.``
message will be displayed.
Show Tap Flow
=============
.. rest_method:: GET /v2.0/taas/tap_flows/{tap_flows_id/name}
Show details for a tap flow by passing tap flow ``name`` or ``id`` as JSON-encoded data.
Normal response codes: 200
Error response codes: 401, 404
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- project: project_id-query
- project-domain: project-domain_taas
- tenant_id: project_id-query
- id: taf_id-query
- name: taf_name-query
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: taf_id
- name: taf_name
- port: source_port_taf
- status: status_taf
- tap_service: tap_service_id
- direction: description_taf
- project_id: project_id
- tenant_id: project_id
Response Example
----------------
.. literalinclude:: samples/taas/taf-show-response.json
:language: javascript