8f066c491e
Change-Id: Ib1aa1a9cd2c42dbed7442010fb0d854ce59472d3
430 lines
8.9 KiB
ReStructuredText
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 |