diff --git a/app/app.yaml b/app/app.yaml new file mode 100644 index 00000000..94d4ba37 --- /dev/null +++ b/app/app.yaml @@ -0,0 +1,46 @@ +components: + schemas: + App: + description: >- + A container for emulated TCP/UDP , application protocols, attacks and it's traffic configurations. + type: object + properties: + tcp: + description: >- + The properties of TCP and its children, + type: array + items: + $ref: './tcp/tcp.yaml#/components/schemas/App.Tcp' + x-field-uid: 1 + http_client: + description: >- + The properties of HTTP client, + type: array + items: + $ref: './http/httpclient.yaml#/components/schemas/App.HttpClient' + x-field-uid: 2 + http_server: + description: >- + The properties of HTTP server, + type: array + items: + $ref: './http/httpserver.yaml#/components/schemas/App.HttpServer' + x-field-uid: 3 + ssl: + description: >- + SSL configuration + type: array + items: + $ref: './ssl/ssl.yaml#/components/schemas/App.Ssl' + x-field-uid: 4 + stateful_flows: + description: >- + Traffic configuration of endpoints. + type: array + items: + $ref: './statefull_flow/statefulflow.yaml#/components/schemas/StatefulFlow' + x-field-uid: 5 + name: + x-include: ../common/common.yaml#/components/schemas/Named.Object/properties/name + x-field-uid: 6 + required: [name] \ No newline at end of file diff --git a/app/http/client.yaml b/app/http/client.yaml new file mode 100644 index 00000000..70dd16ec --- /dev/null +++ b/app/http/client.yaml @@ -0,0 +1,61 @@ +components: + schemas: + HttpClient.Client: + description: >- + One or more HTTP Client configurations and its HTTP methods configs. + type: object + properties: + transport_name: + description: >- + Transport interface that can be attached to TCP. In the same apps or different apps container. + type: string + x-constraint: + - '/components/schemas/App.Tcp/properties/name' + x-field-uid: 1 + http_version: + description: >- + HTTP Version + type: string + x-field-uid: 2 + x-enum: + "v10": + x-field-uid: 1 + "v11": + x-field-uid: 2 + "v20": + x-field-uid: 3 + default: "v10" + cookie_jar_size: + description: >- + cookie_jar_size the number of cookies that will be saved for each client. The maximum value of this is 300. (only if enable_cookie_support is enabled) + type: integer + default: 10 + x-field-uid: 3 + cookie_reject_probability: + description: >- + cookie_reject_probability indicates the probability, from 0 or 1, that a client will reject a request for a cookie(s) contents from the server. (only if enable_cookie_support is enabled) + type: boolean + default: 0 + x-field-uid: 4 + enable_cookie_support: + description: >- + The client will support cookie retention, as indicated in the cookie_jar_size and cookie_reject_probability + type: boolean + default: false + x-field-uid: 5 + command_timeout: + description: >- + HTTP command timeout timer in seconds + type: number + default: 600 + x-field-uid: 6 + methods: + description: >- + The HTTP methods such as GET, POST and its properties. + type: array + items: + $ref: './method.yaml#/components/schemas/Http.Method' + x-field-uid: 10 + name: + x-include: ../common/common.yaml#/components/schemas/Named.Object/properties/name + x-field-uid: 11 \ No newline at end of file diff --git a/app/http/httpclient.yaml b/app/http/httpclient.yaml new file mode 100644 index 00000000..c47568f5 --- /dev/null +++ b/app/http/httpclient.yaml @@ -0,0 +1,12 @@ +components: + schemas: + App.HttpClient: + description: >- + Configurations of one or more HTTP client. + type: object + properties: + client: + $ref: './client.yaml#/components/schemas/HttpClient.Client' + x-field-uid: 1 + + diff --git a/app/http/httpserver.yaml b/app/http/httpserver.yaml new file mode 100644 index 00000000..77d7012b --- /dev/null +++ b/app/http/httpserver.yaml @@ -0,0 +1,10 @@ +components: + schemas: + App.HttpServer: + description: >- + Configurations of one or more HTTP server. + type: object + properties: + server: + $ref: './server.yaml#/components/schemas/HttpServer.Server' + x-field-uid: 1 \ No newline at end of file diff --git a/app/http/method.yaml b/app/http/method.yaml new file mode 100644 index 00000000..36a94c2c --- /dev/null +++ b/app/http/method.yaml @@ -0,0 +1,53 @@ +components: + schemas: + Http.Method: + type: object + properties: + choice: + type: string + default: get + x-field-uid: 1 + x-enum: + get: + x-field-uid: 1 + post: + x-field-uid: 2 + get: + x-field-uid: 2 + $ref: '#/components/schemas/Method.Get' + post: + x-field-uid: 3 + $ref: '#/components/schemas/Method.Post' + + Method.Get: + description: >- + A GET operation of HTTP client. Retrieves the page from the HTTP Server. + type: object + required: [server, page] + properties: + server: + description: >- + Server name/IP address + type: string + x-field-uid: 1 + page: + description: >- + The page url/name to perform HTTP GET operation. + type: string + x-field-uid: 2 + Method.Post: + description: >- + A POST operation of HTTP client. To post the data on HTTP Server. + type: object + required: [server, page] + properties: + server: + description: >- + Server name/IP address + type: string + x-field-uid: 1 + page: + description: >- + The page url/name to perform HTTP POST operation. + type: string + x-field-uid: 2 \ No newline at end of file diff --git a/app/http/server.yaml b/app/http/server.yaml new file mode 100644 index 00000000..b885018c --- /dev/null +++ b/app/http/server.yaml @@ -0,0 +1,40 @@ +components: + schemas: + HttpServer.Server: + description: >- + One or more HTTP Server configurations. + type: object + properties: + transport_name: + description: >- + Transport interface that can be attached to TCP. In the same apps or different apps container. + type: string + x-constraint: + - '/components/schemas/App.Tcp/properties/name' + x-field-uid: 1 + http_version: + description: >- + HTTP Version + type: string + x-field-uid: 2 + x-enum: + "v10": + x-field-uid: 1 + "v11": + x-field-uid: 2 + "v20": + x-field-uid: 3 + default: "v10" + http_port: + description: >- + The port number to which the HTTP server will respond to non-SSL requests. + type: integer + default: 80 + x-field-uid: 3 + request_timeout: + description: >- + The number of seconds that the server will wait for input on an open connection before closing the session with a 408 error. + type: integer + default: 300 + x-field-uid: 4 + \ No newline at end of file diff --git a/app/ssl/ssl.yaml b/app/ssl/ssl.yaml new file mode 100644 index 00000000..118b80d9 --- /dev/null +++ b/app/ssl/ssl.yaml @@ -0,0 +1,13 @@ +components: + schemas: + App.Ssl: + description: >- + SSL configuration . + type: object + properties: + enable: + description: >- + Enable SSL for HTTP + type: boolean + default: false + x-field-uid: 1 \ No newline at end of file diff --git a/app/statefull_flow/client.yaml b/app/statefull_flow/client.yaml new file mode 100644 index 00000000..9931fd4c --- /dev/null +++ b/app/statefull_flow/client.yaml @@ -0,0 +1,22 @@ +components: + schemas: + StatefulFlow.Client: + description: >- + Client traffic configs. + type: object + properties: + endpoints: + description: >- + EndPoint configuration for one or more emulated apps. + type: array + items: + $ref: './endpoints.yaml#/components/schemas/Endpoints.Client' + x-field-uid: 1 + protocol: + description: >- + Protocol to use for test, such as HTTP, TCP + type: string + x-constraint: + - '/components/schemas/App.Tcp/properties/name' + - '/components/schemas/App.Http/properties/name' + x-field-uid: 2 \ No newline at end of file diff --git a/app/statefull_flow/endpoints.yaml b/app/statefull_flow/endpoints.yaml new file mode 100644 index 00000000..ebeb27ed --- /dev/null +++ b/app/statefull_flow/endpoints.yaml @@ -0,0 +1,79 @@ +components: + schemas: + Endpoints.Client: + description: >- + Endpoint configs for Client. + type: object + properties: + ip_interface_name: + description: >- + IPv4/v6 interface name, which is configured in devices. + type: string + x-constraint: + - '/components/schemas/Device.Ipv4Base/properties/name' + - '/components/schemas/Device.Ipv6Base/properties/name' + x-field-uid: 1 + ports: + x-field-pattern: + description: >- + TCP port range + format: integer + length: 3 + default: 80 + features: [count] + x-field-uid: 2 + + Endpoints.Server: + description: >- + Endpoint configs for Server. + type: object + properties: + dest: + $ref: '#/components/schemas/Endpoints.Dest' + x-field-uid: 1 + ports: + x-field-pattern: + description: >- + TCP port range + format: integer + length: 3 + default: 80 + features: [count] + x-field-uid: 2 + + Endpoints.Dest: + description: >- + Endpoint destination config for server. + type: object + properties: + choice: + type: string + default: name + x-field-uid: 1 + x-enum: + name: + x-field-uid: 1 + ipv4_address: + x-field-uid: 2 + ipv6_address: + x-field-uid: 3 + name: + description: >- + IPv4/v6 interface name + type: string + x-constraint: + - '/components/schemas/Device.Ipv4Base/properties/name' + - '/components/schemas/Device.Ipv6Base/properties/name' + x-field-uid: 2 + ipv4_address: + description: >- + IPv4 address of the server with prefix length of 32. + type: string + x-field-uid: 3 + format: ipv4 + ipv6_address: + description: >- + IPv6 address of the server with prefix length of 128. + type: string + x-field-uid: 4 + format: ipv6 \ No newline at end of file diff --git a/app/statefull_flow/objective.yaml b/app/statefull_flow/objective.yaml new file mode 100644 index 00000000..59e94abd --- /dev/null +++ b/app/statefull_flow/objective.yaml @@ -0,0 +1,127 @@ +components: + schemas: + StatefulFlow.Objective: + description: >- + objective config such simulated user, thoughput, conncurrent connections. + type: object + properties: + choice: + type: string + default: throughput + x-field-uid: 1 + x-enum: + simulated_user: + x-field-uid: 1 + throughput: + x-field-uid: 2 + concurrent_connections: + x-field-uid: 3 + simulated_user: + x-field-uid: 2 + $ref: '#/components/schemas/Objective.Simulated.User' + throughput: + x-field-uid: 3 + $ref: '#/components/schemas/Objective.Throughput' + concurrent_connections: + x-field-uid: 4 + $ref: '#/components/schemas/Objective.Connection.Conncurrent' + + Objective.Simulated.User: + description: >- + simulated user traffic + type: object + required: [value] + properties: + value: + description: >- + Number of simulated user. + type: integer + x-field-uid: 1 + ramp_up_type: + description: >- + Ramp up type to defines the type of user execution profiles during the ramp_up_time, . + type: string + x-field-uid: 2 + x-enum: + "users_intervals": + x-field-uid: 1 + "max_pending_user": + x-field-uid: 2 + "immediate": + x-field-uid: 3 + default: "users_intervals" + ramp_up_value: + description: >- + Value applied to ramp_up_type to either bring up users at a certain rate. + type: integer + x-field-uid: 3 + sustain_time: + description: >- + Amount of time when all users are up and performing the central test objectives, such as retrieving or serving pages. + type: integer + x-field-uid: 4 + ramp_down_time: + description: >- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: integer + x-field-uid: 5 + Objective.Throughput: + description: >- + Throughput traffic + type: object + properties: + choice: + description: |- + The throughput test value or max throughput . + type: string + default: max_throughput + x-field-uid: 1 + x-enum: + value: + x-field-uid: 1 + max_throughput: + x-field-uid: 2 + value: + type: integer + x-field-uid: 2 + max_throughput: + type: boolean + default: 0 + x-field-uid: 3 + sustain_time: + description: >- + Amount of seconds when all users are up and performing the central test objectives, such as retrieving or serving pages. + type: number + x-field-uid: 4 + ramp_down_time: + description: >- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: number + x-field-uid: 5 + + Objective.Connection.Conncurrent: + description: >- + Conncurrent connections objectives + type: object + required: [value] + properties: + value: + description: >- + Throughput value. + type: integer + x-field-uid: 1 + sustain_time: + description: >- + Amount of seconds when all users are up and performing the central test objectives, such as retrieving or serving pages. + type: number + x-field-uid: 2 + ramp_down_time: + description: >- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: number + x-field-uid: 3 + ramp_down_value: + description: >- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: number + x-field-uid: 4 \ No newline at end of file diff --git a/app/statefull_flow/server.yaml b/app/statefull_flow/server.yaml new file mode 100644 index 00000000..a2b471f5 --- /dev/null +++ b/app/statefull_flow/server.yaml @@ -0,0 +1,22 @@ +components: + schemas: + StatefulFlow.Server: + description: >- + Traffic configuration for server(s). + type: object + properties: + endpoints: + description: >- + EndPoint configuration for one or more emulated apps. + type: array + items: + $ref: './endpoints.yaml#/components/schemas/Endpoints.Server' + x-field-uid: 1 + protocol: + description: >- + Protocol to use for test, such as HTTP, TCP + type: string + x-constraint: + - '/components/schemas/App.Tcp/properties/name' + - '/components/schemas/App.Http/properties/name' + x-field-uid: 2 \ No newline at end of file diff --git a/app/statefull_flow/statefulflow.yaml b/app/statefull_flow/statefulflow.yaml new file mode 100644 index 00000000..e330c548 --- /dev/null +++ b/app/statefull_flow/statefulflow.yaml @@ -0,0 +1,17 @@ +components: + schemas: + StatefulFlow: + description: >- + Statefull_flows configure traffic for emulated protocols which is configured in apps. + type: object + properties: + client: + $ref: './client.yaml#/components/schemas/StatefulFlow.Client' + x-field-uid: 1 + server: + $ref: './server.yaml#/components/schemas/StatefulFlow.Server' + x-field-uid: 2 + objectives: + $ref: './objective.yaml#/components/schemas/StatefulFlow.Objective' + x-field-uid: 3 + diff --git a/app/tcp/tcp.yaml b/app/tcp/tcp.yaml new file mode 100644 index 00000000..a293afe6 --- /dev/null +++ b/app/tcp/tcp.yaml @@ -0,0 +1,41 @@ +components: + schemas: + App.Tcp: + description: >- + The properties of TCP Configurations. + type: object + properties: + keep_alive_time: + description: >- + If a link has no activity on it for the time specified, + keep-alive probes are sent to determine if the link is still up. The Keep-alive Time value is expressed in seconds. + type: number + default: 7200 + x-field-uid: 1 + keep_alive_probes: + description: >- + Number of keep-alive probes sent out before determining that a link is down. + type: number + default: 9 + x-field-uid: 2 + keep_alive_interval: + description: >- + The number of seconds between repeated keep-alive probes. + type: number + default: 75 + x-field-uid: 3 + receive_buffer_size: + description: >- + The TCP read buffer size. + type: integer + default: 4096 + x-field-uid: 4 + transmit_buffer_size: + description: >- + The TCP write buffer size. + type: integer + default: 4096 + x-field-uid: 5 + name: + x-include: ../common/common.yaml#/components/schemas/Named.Object/properties/name + x-field-uid: 6 \ No newline at end of file diff --git a/artifacts/openapi.html b/artifacts/openapi.html deleted file mode 100644 index 7b6406ad..00000000 --- a/artifacts/openapi.html +++ /dev/null @@ -1,778 +0,0 @@ - - - - - - Open Traffic Generator API - - - - - - - - - -

Open Traffic Generator API (0.11.3)

Download OpenAPI specification:Download

Open Traffic Generator API defines a model-driven, vendor-neutral and standard -interface for emulating layer 2-7 network devices and generating test traffic.

-

Contributions can be made in the following ways:

- -

Configuration

set_config

Sets configuration resources on the traffic generator.

-
Request Body schema: application/json
Array of objects (Port)

The ports that will be configured on the traffic generator.

-
Array of objects (Lag)

The LAGs that will be configured on the traffic generator.

-
Array of objects (Layer1)

The layer1 settings that will be configured on the traffic generator.

-
Array of objects (Capture)

The capture settings that will be configured on the traffic generator.

-
Array of objects (Device)

The emulated devices that will be configured on the traffic generator. -Each device contains configurations for network interfaces and -protocols running on top of those interfaces.

-
Array of objects (Flow)

The flows that will be configured on the traffic generator.

-
object (Event)

The optional container for event configuration.

-
object (Config.Options)

Global configuration options.

-
Array of objects (Lldp)

LLDP protocol that will be configured on traffic generator.

-

Responses

Request samples

Content type
application/json
{
  • "ports": [
    ],
  • "lags": [
    ],
  • "layer1": [
    ],
  • "captures": [
    ],
  • "devices": [
    ],
  • "flows": [
    ],
  • "events": {
    },
  • "options": {
    },
  • "lldp": [
    ]
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

get_config

Responses

Response samples

Content type
application/json
{
  • "ports": [
    ],
  • "lags": [
    ],
  • "layer1": [
    ],
  • "captures": [
    ],
  • "devices": [
    ],
  • "flows": [
    ],
  • "events": {
    },
  • "options": {
    },
  • "lldp": [
    ]
}

update_config

Updates specific attributes of resources configured on the traffic generator. The fetched configuration shall reflect the updates applied successfully. -The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change.

-
Request Body schema: application/json
choice
string
Value: "flows"
object (Flows.Update)

A container of flows with associated properties to be updated without affecting the flows current transmit state.

-

Responses

Request samples

Content type
application/json
{
  • "choice": "flows",
  • "flows": {
    }
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

Control

set_control_state

Sets the operational state of configured resources.

-
Request Body schema: application/json
choice
required
string
Enum: "port" "protocol" "traffic"
object (State.Port)

States associated with configured ports.

-
object (State.Protocol)

States associated with protocols on configured resources.

-
object (State.Traffic)

States associated with configured flows

-

Responses

Request samples

Content type
application/json
{
  • "choice": "port",
  • "port": {
    },
  • "protocol": {
    },
  • "traffic": {
    }
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

set_control_action

Triggers actions against configured resources.

-
Request Body schema: application/json
choice
required
string
Value: "protocol"
object (Action.Protocol)

Actions associated with protocols on configured resources.

-

Responses

Request samples

Content type
application/json
{
  • "choice": "protocol",
  • "protocol": {
    }
}

Response samples

Content type
application/json
{
  • "warnings": [
    ],
  • "response": {
    }
}

set_transmit_state

Deprecated: Please use set_control_state with traffic.flow_transmit choice instead

-

Updates the state of configuration resources on the traffic generator. -The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change.

-
Request Body schema: application/json
flow_names
Array of strings

The names of flows to which the transmit state will be applied to. If the list of flow_names is empty or null the state will be applied to all configured flows. -If the list is not empty any flow that is not included in the list of flow_names MUST be ignored and not included in the state change.

-

x-constraint:

-
    -
  • /components/schemas/Flow/properties/name
  • -
-
state
required
string
Enum: "start" "stop" "pause" "resume"

The transmit state. -If the value of the state property is 'start' then all flows defined by the 'flow_names' property will be started and the metric counters MUST be cleared prior to starting the flow(s). -If the value of the state property is 'stop' then all flows defined by the 'flow_names' property will be stopped and the metric counters MUST NOT be cleared. -If the value of the state property is 'pause' then all flows defined by the 'flow_names' property will be paused and the metric counters MUST NOT be cleared. -If the value of the state property is 'resume' then any paused flows defined by the 'flow_names' property will start transmit at the point at which they were paused. Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) MUST NOT have their metric counters cleared.

-

Responses

Request samples

Content type
application/json
{
  • "flow_names": [
    ],
  • "state": "start"
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

set_capture_state

Deprecated: Please use set_control_state with port.capture choice instead

-

Updates the state of configuration resources on the traffic generator.

-
Request Body schema: application/json
port_names
Array of strings

The names of ports to which the capture state will be applied to. If the list of port_names is empty or null the state will be applied to all configured ports. -If the list is not empty any port that is not included in the list of port_names MUST be ignored and not included in the state change.

-

x-constraint:

-
    -
  • /components/schemas/Port/properties/name
  • -
-
state
required
string
Enum: "start" "stop"

The capture state.

-

Responses

Request samples

Content type
application/json
{
  • "port_names": [
    ],
  • "state": "start"
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

update_flows

Deprecated: Please use update_config with flow choice instead

-

Updates flow properties without disruption of transmit state.

-
Request Body schema: application/json
property_names
required
Array of strings
Items Enum: "rate" "size"

Flow properties to be updated without affecting the transmit state.

-
required
Array of objects (Flow)

The list of configured flows for which given property will be updated.

-

Responses

Request samples

Content type
application/json
{
  • "property_names": [
    ],
  • "flows": [
    ]
}

Response samples

Content type
application/json
{
  • "ports": [
    ],
  • "lags": [
    ],
  • "layer1": [
    ],
  • "captures": [
    ],
  • "devices": [
    ],
  • "flows": [
    ],
  • "events": {
    },
  • "options": {
    },
  • "lldp": [
    ]
}

set_route_state

Deprecated: Please use set_control_state with protocol.route choice instead

-

Updates the state of configuration resources on the traffic generator.

-
Request Body schema: application/json
names
Array of strings

The names of device route objects to control. If no names are specified then all route objects that match the x-constraint will be affected.

-

x-constraint:

-
    -
  • /components/schemas/Bgp.V4RouteRange/properties/name
  • -
  • /components/schemas/Bgp.V6RouteRange/properties/name
  • -
  • /components/schemas/Isis.V4RouteRange/properties/name
  • -
  • /components/schemas/Isis.V6RouteRange/properties/name
  • -
-
state
required
string
Enum: "withdraw" "advertise"

Route specific states

-

Responses

Request samples

Content type
application/json
{
  • "names": [
    ],
  • "state": "withdraw"
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

send_ping

Deprecated: Please use set_control_action with protocol.ipv*.ping choice instead

-

API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each endpoint 1 ping packet will be sent and API shall wait for ping response to either be successful or timeout. The API wait timeout for each request is 300ms.

-
Request Body schema: application/json
Array of objects (Ping)

Array of ping requests

-

Responses

Request samples

Content type
application/json
{
  • "endpoints": [
    ]
}

Response samples

Content type
application/json
{
  • "responses": [
    ]
}

set_protocol_state

Deprecated: Please use set_control_state with protocol.all choice instead

-

Sets all configured protocols to start or stop state.

-
Request Body schema: application/json
state
required
string
Enum: "start" "stop"

Protocol specific states

-

Responses

Request samples

Content type
application/json
{
  • "state": "start"
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

set_device_state

Deprecated: Please use set_control_state with protocol choice instead

-

Set specific state/actions on device configuration resources on the traffic generator.

-
Request Body schema: application/json
choice
string
Value: "lacp_member_state"
object (LacpMember.State)

Deprecated: Please use StateProtocolLacpAdmin instead

-

Set LACP state for specified LAG Member Port(s).

-

Responses

Request samples

Content type
application/json
{
  • "choice": "lacp_member_state",
  • "lacp_member_state": {
    }
}

Response samples

Content type
application/json
{
  • "warnings": [
    ]
}

Monitor

get_metrics

Request Body schema: application/json

Request to traffic generator for metrics of choice

-
choice
string
Default: "port"
Enum: "port" "flow" "bgpv4" "bgpv6" "isis" "lag" "lacp" "lldp" "rsvp"
object (Port.Metrics.Request)

The port result request to the traffic generator

-
object (Flow.Metrics.Request)

The container for a flow metric request.

-
object (Bgpv4.Metrics.Request)

The request to retrieve BGPv4 per peer metrics/statistics.

-
object (Bgpv6.Metrics.Request)

The request to retrieve BGPv6 per peer metrics/statistics.

-
object (Isis.Metrics.Request)

The request to retrieve ISIS per Router metrics/statistics.

-
object (Lag.Metrics.Request)

The request to retrieve per LAG metrics/statistics.

-
object (Lacp.Metrics.Request)

The request to retrieve LACP per LAG member metrics/statistics.

-
object (Lldp.Metrics.Request)

The request to retrieve LLDP per instance metrics/statistics.

-
object (Rsvp.Metrics.Request)

The request to retrieve RSVP-TE per Router metrics/statistics.

-

Responses

Request samples

Content type
application/json
{
  • "choice": "port",
  • "port": {
    },
  • "flow": {
    },
  • "bgpv4": {
    },
  • "bgpv6": {
    },
  • "isis": {
    },
  • "lag": {
    },
  • "lacp": {
    },
  • "lldp": {
    },
  • "rsvp": {
    }
}

Response samples

Content type
application/json
{
  • "choice": "port_metrics",
  • "port_metrics": [
    ],
  • "flow_metrics": [
    ],
  • "bgpv4_metrics": [
    ],
  • "bgpv6_metrics": [
    ],
  • "isis_metrics": [
    ],
  • "lag_metrics": [
    ],
  • "lacp_metrics": [
    ],
  • "lldp_metrics": [
    ],
  • "rsvp_metrics": [
    ]
}

get_states

Request Body schema: application/json

Request to traffic generator for states of choice

-
choice
string
Default: "ipv4_neighbors"
Enum: "ipv4_neighbors" "ipv6_neighbors" "bgp_prefixes" "isis_lsps" "lldp_neighbors" "rsvp_lsps"
object (Neighborsv4.States.Request)

The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s).

-
object (Neighborsv6.States.Request)

The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s).

-
object (BgpPrefix.State.Request)

The request to retrieve BGP peer prefix information.

-
object (IsisLsps.State.Request)

The request to retrieve ISIS Link State PDU (LSP) information learned by the router.

-
object (LldpNeighbors.State.Request)

The request to retrieve LLDP neighbor information for a given instance.

-
object (RsvpLsps.State.Request)

The request to retrieve RSVP Label Switched Path (LSP) information learned by the router.

-

Responses

Request samples

Content type
application/json
{
  • "choice": "ipv4_neighbors",
  • "ipv4_neighbors": {
    },
  • "ipv6_neighbors": {
    },
  • "bgp_prefixes": {
    },
  • "isis_lsps": {
    },
  • "lldp_neighbors": {
    },
  • "rsvp_lsps": {
    }
}

Response samples

Content type
application/json
{
  • "choice": "ipv4_neighbors",
  • "ipv4_neighbors": [
    ],
  • "ipv6_neighbors": [
    ],
  • "bgp_prefixes": [
    ],
  • "isis_lsps": [
    ],
  • "lldp_neighbors": [
    ],
  • "rsvp_lsps": [
    ]
}

get_capture

Request Body schema: application/json

Capture results request to the traffic generator.

-
port_name
required
string

The name of a port a capture is started on.

-

x-constraint:

-
    -
  • /components/schemas/Port/properties/name
  • -
-

Responses

Request samples

Content type
application/json
{
  • "port_name": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Capabilities

get_version

Responses

Response samples

Content type
application/json
{
  • "api_spec_version": "",
  • "sdk_version": "",
  • "app_version": ""
}
- - - - \ No newline at end of file diff --git a/artifacts/openapi.yaml b/artifacts/openapi.yaml index a5a97ad5..0d36eb64 100644 --- a/artifacts/openapi.yaml +++ b/artifacts/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.11.3 + version: 0.9.6 contact: url: https://github.com/open-traffic-generator/models license: @@ -59,94 +59,14 @@ paths: '500': $ref: '#/components/responses/InternalServerError' x-field-uid: 3 - patch: - tags: - - Configuration - operationId: update_config - description: |- - Updates specific attributes of resources configured on the traffic generator. The fetched configuration shall reflect the updates applied successfully. - The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Config.Update' - responses: - '200': - $ref: '#/components/responses/Success' - x-field-uid: 1 - '400': - $ref: '#/components/responses/BadRequest' - x-field-uid: 2 - '500': - $ref: '#/components/responses/InternalServerError' - x-field-uid: 3 - /control/state: - post: - tags: - - Control - operationId: set_control_state - description: |- - Sets the operational state of configured resources. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Control.State' - responses: - '200': - $ref: '#/components/responses/Success' - x-field-uid: 1 - '400': - $ref: '#/components/responses/BadRequest' - x-field-uid: 2 - '500': - $ref: '#/components/responses/InternalServerError' - x-field-uid: 3 - /control/action: - post: - tags: - - Control - operationId: set_control_action - description: |- - Triggers actions against configured resources. - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Control.Action' - responses: - '200': - description: |- - Response for actions triggered against configured resources. - content: - application/json: - schema: - $ref: '#/components/schemas/Control.Action.Response' - x-field-uid: 1 - '400': - $ref: '#/components/responses/BadRequest' - x-field-uid: 2 - '500': - $ref: '#/components/responses/InternalServerError' - x-field-uid: 3 /control/transmit: post: tags: - Control operationId: set_transmit_state description: |- - Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead - Updates the state of configuration resources on the traffic generator. The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change. - x-status: - status: deprecated - information: Please use `set_control_state` with `traffic.flow_transmit` choice - instead requestBody: required: true content: @@ -169,12 +89,7 @@ paths: - Control operationId: set_link_state description: |- - Deprecated: Please use `set_control_state` with `port.link` choice instead - Updates the state of configuration resources on the traffic generator. - x-status: - status: deprecated - information: Please use `set_control_state` with `port.link` choice instead requestBody: required: true content: @@ -197,12 +112,7 @@ paths: - Control operationId: set_capture_state description: |- - Deprecated: Please use `set_control_state` with `port.capture` choice instead - Updates the state of configuration resources on the traffic generator. - x-status: - status: deprecated - information: Please use `set_control_state` with `port.capture` choice instead requestBody: required: true content: @@ -225,12 +135,7 @@ paths: - Control operationId: update_flows description: |- - Deprecated: Please use `update_config` with `flow` choice instead - Updates flow properties without disruption of transmit state. - x-status: - status: deprecated - information: Please use `update_config` with `flow` choice instead requestBody: required: true content: @@ -258,12 +163,7 @@ paths: - Control operationId: set_route_state description: |- - Deprecated: Please use `set_control_state` with `protocol.route` choice instead - Updates the state of configuration resources on the traffic generator. - x-status: - status: deprecated - information: Please use `set_control_state` with `protocol.route` choice instead requestBody: required: true content: @@ -286,13 +186,7 @@ paths: - Control operationId: send_ping description: |- - Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead - API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each endpoint 1 ping packet will be sent and API shall wait for ping response to either be successful or timeout. The API wait timeout for each request is 300ms. - x-status: - status: deprecated - information: Please use `set_control_action` with `protocol.ipv*.ping` choice - instead requestBody: required: true content: @@ -320,12 +214,7 @@ paths: - Control operationId: set_protocol_state description: |- - Deprecated: Please use `set_control_state` with `protocol.all` choice instead - Sets all configured protocols to `start` or `stop` state. - x-status: - status: deprecated - information: Please use `set_control_state` with `protocol.all` choice instead requestBody: required: true content: @@ -348,12 +237,7 @@ paths: - Control operationId: set_device_state description: |- - Deprecated: Please use `set_control_state` with `protocol` choice instead - Set specific state/actions on device configuration resources on the traffic generator. - x-status: - status: deprecated - information: Please use `set_control_state` with `protocol` choice instead requestBody: required: true content: @@ -370,12 +254,12 @@ paths: '500': $ref: '#/components/responses/InternalServerError' x-field-uid: 3 - /monitor/metrics: + /results/metrics: description: |- Metrics API post: tags: - - Monitor + - Metrics operationId: get_metrics requestBody: description: |- @@ -400,12 +284,12 @@ paths: '500': $ref: '#/components/responses/InternalServerError' x-field-uid: 3 - /monitor/states: + /results/states: description: |- States API post: tags: - - Monitor + - States operationId: get_states requestBody: description: |- @@ -430,12 +314,12 @@ paths: '500': $ref: '#/components/responses/InternalServerError' x-field-uid: 3 - /monitor/capture: + /results/capture: description: |- Capture results API post: tags: - - Monitor + - Capture operationId: get_capture requestBody: description: |- @@ -461,26 +345,6 @@ paths: '500': $ref: '#/components/responses/InternalServerError' x-field-uid: 3 - /capabilities/version: - get: - tags: - - Capabilities - operationId: get_version - responses: - '200': - description: |- - Version details from API server - content: - application/json: - schema: - $ref: '#/components/schemas/Version' - x-field-uid: 1 - '400': - $ref: '#/components/responses/BadRequest' - x-field-uid: 2 - '500': - $ref: '#/components/responses/InternalServerError' - x-field-uid: 3 components: responses: Success: @@ -561,12 +425,12 @@ components: options: $ref: '#/components/schemas/Config.Options' x-field-uid: 8 - lldp: + apps: description: |- - LLDP protocol that will be configured on traffic generator. + The emulated protocols such as TCP/UDP, HTTP, etc and attacks, which can be attached to device IPv4/v6 interface. type: array items: - $ref: '#/components/schemas/Lldp' + $ref: '#/components/schemas/App' x-field-uid: 9 Config.Options: description: |- @@ -576,9 +440,6 @@ components: port_options: $ref: '#/components/schemas/Port.Options' x-field-uid: 1 - protocol_options: - $ref: '#/components/schemas/Protocol.Options' - x-field-uid: 2 Port: description: |- An abstract test port. @@ -633,8 +494,7 @@ components: x-field-uid: 2 min_links: description: |- - Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available. - If the aggregate interface is not available due to min-links criterion not being met, LACPDUs continue to be transmitted and received by the member interfaces if LACP is enabled, but other PDUs are not transmitted or received. + Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available type: integer format: int32 minimum: 0 @@ -839,8 +699,7 @@ components: properties: port_name: description: | - Deprecated: This property is deprecated in favor of property connection.port_name - + Status: {'status': 'deprecated', 'additional_information': 'property port_name is deprecated from the snappi version x.x.x.\nplease use connection.port_name instead of port_name'} The unique name of a Port or a LAG that will emulate this interface. port_name is deprecated and will be removed in future release.port_name and connection can't be used together, use either port_name or connection. @@ -849,7 +708,10 @@ components: - /components/schemas/Lag/properties/name x-status: status: deprecated - information: This property is deprecated in favor of property connection.port_name + additional_information: 'property port_name is deprecated from the snappi + version x.x.x. + + please use connection.port_name instead of port_name' type: string x-constraint: - /components/schemas/Port/properties/name @@ -1492,11 +1354,10 @@ components: x-field-uid: 9 Capture: x-status: - status: under_review - information: Information TBD + status: under-review + additional_information: Capture schema is under review description: |- - Under Review: Information TBD - + Status: {'status': 'under-review', 'additional_information': 'Capture schema is under review'} Configuration for capture settings. type: object required: @@ -1796,25 +1657,14 @@ components: type: string pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global - rsvp: - description: |- - The properties of an RSVP router and its children. - $ref: '#/components/schemas/Device.Rsvp' - x-field-uid: 8 required: - name - Protocol.Options: - description: "Common options that apply to all configured protocols and interfaces. " - type: object - properties: - auto_start_all: - description: |- - When set to true, all underlying resources for configured protocols and interfaces shall be created and corresponding protocol session negotiation shall be initiated. Otherwise, when set to false, corresponding protocol session negotiation will need to be initiated using a separate set_protocol_state API call. - type: boolean - default: true - x-field-uid: 1 Device.IsisRouter: + x-status: + status: under-review + additional_information: Device.IsisRouter is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Device.IsisRouter is under review'} A container of properties for an ISIS router and its interfaces. type: object required: @@ -1876,8 +1726,12 @@ components: pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global Device.IsisMultiInstance: - description: "This container properties of an Multi-Instance-capable router\ - \ (MI-RTR). " + x-status: + status: under-review + additional_information: Device.IsisMultiInstance is under review + description: "Status: {'status': 'under-review', 'additional_information': 'Device.IsisMultiInstance\ + \ is under review'}\nThis container properties of an Multi-Instance-capable\ + \ router (MI-RTR). " type: object properties: iid: @@ -1899,7 +1753,11 @@ components: maximum: 65535 x-field-uid: 2 Isis.Interface: + x-status: + status: under-review + additional_information: Isis.Interface is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Isis.Interface is under review'} Configuration for single ISIS interface. type: object required: @@ -2028,7 +1886,11 @@ components: default: 30 x-field-uid: 3 Isis.MT: + x-status: + status: under-review + additional_information: Isis.MT is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Isis.MT is under review'} Configuration of properties per interface per topology when multiple topologies are configured in an ISIS router. in a ISIS router. type: object @@ -2050,7 +1912,11 @@ components: maximum: 16777215 x-field-uid: 2 LinkState.TE: + x-status: + status: under-review + additional_information: LinkState.TE is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'LinkState.TE is under review'} A container for Traffic Engineering properties on a interface. type: object properties: @@ -2777,169 +2643,6 @@ components: items: $ref: '#/components/schemas/Bgp.V6Interface' x-field-uid: 3 - Device.Bgp.MessageHeaderError: - description: |- - All errors detected while processing the Message Header are indicated by sending the NOTIFICATION message with the Error Code-Message Header Error. The Error Subcode elaborates on the specific nature of the error. - type: object - properties: - subcode: - description: |- - The Error Subcode indicates the specific type of error encountered during Message Header processing. - type: string - default: connection_not_synchronized_code1_subcode1 - x-field-uid: 1 - x-enum: - connection_not_synchronized_code1_subcode1: - x-field-uid: 1 - bad_message_length_code1_subcode2: - x-field-uid: 2 - bad_message_type_code1_subcode3: - x-field-uid: 3 - enum: - - connection_not_synchronized_code1_subcode1 - - bad_message_length_code1_subcode2 - - bad_message_type_code1_subcode3 - Device.Bgp.OpenMessageError: - description: |- - All errors detected while processing the OPEN message are indicated by sending the NOTIFICATION message with the Error Code-Open Message Error. The Error Subcode elaborates on the specific nature of the error. - type: object - properties: - subcode: - description: |- - The Error Subcode indicates the specific type of error encountered during OPEN message processing. - type: string - default: unsupported_version_number_code2_subcode1 - x-field-uid: 1 - x-enum: - unsupported_version_number_code2_subcode1: - x-field-uid: 1 - error_peer_as_code2_subcode2: - x-field-uid: 2 - error_bgp_id_code2_subcode3: - x-field-uid: 3 - unsupported_optional_parameter_code2_subcode4: - x-field-uid: 4 - auth_failed_code2_subcode5: - x-field-uid: 5 - unsupported_hold_time_code2_subcode6: - x-field-uid: 6 - unsupported_capability_code2_subcode7: - x-field-uid: 7 - enum: - - unsupported_version_number_code2_subcode1 - - error_peer_as_code2_subcode2 - - error_bgp_id_code2_subcode3 - - unsupported_optional_parameter_code2_subcode4 - - auth_failed_code2_subcode5 - - unsupported_hold_time_code2_subcode6 - - unsupported_capability_code2_subcode7 - Device.Bgp.UpdateMessageError: - description: |- - All errors detected while processing the UPDATE message are indicated by sending the NOTIFICATION message with the Error Code-Update Message Error. The Error Subcode elaborates on the specific nature of the error. - type: object - properties: - subcode: - description: |- - The Error Subcode, the specific type of error encountered during UPDATE processing. - type: string - default: malformed_attrib_list_code3_subcode1 - x-field-uid: 1 - x-enum: - malformed_attrib_list_code3_subcode1: - x-field-uid: 1 - unrecognized_wellknown_attrib_code3_subcode2: - x-field-uid: 2 - wellknown_attrib_missing_code3_subcode3: - x-field-uid: 3 - attrib_flags_error_code3_subcode4: - x-field-uid: 4 - attrib_length_error_code3_subcode5: - x-field-uid: 5 - invalid_origin_attrib_code3_subcode6: - x-field-uid: 6 - as_routing_loop_code3_subcode7: - x-field-uid: 7 - invalid_nhop_attrib_code3_subcode8: - x-field-uid: 8 - error_optional_attrib_code3_subcode9: - x-field-uid: 9 - invalid_network_field_code3_subcode10: - x-field-uid: 10 - abnormal_aspath_code3_subcode11: - x-field-uid: 11 - enum: - - malformed_attrib_list_code3_subcode1 - - unrecognized_wellknown_attrib_code3_subcode2 - - wellknown_attrib_missing_code3_subcode3 - - attrib_flags_error_code3_subcode4 - - attrib_length_error_code3_subcode5 - - invalid_origin_attrib_code3_subcode6 - - as_routing_loop_code3_subcode7 - - invalid_nhop_attrib_code3_subcode8 - - error_optional_attrib_code3_subcode9 - - invalid_network_field_code3_subcode10 - - abnormal_aspath_code3_subcode11 - Device.Bgp.HoldTimerExpired: - description: |- - If a system does not receive successive KEEPALIVE, UPDATE, and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the NOTIFICATION message with the Hold Timer Expired Error Code(Error Code 4) is sent and the BGP connection is closed. The Sub Code used is 0. If a user wants to use non zero Sub Code then CustomError can be used. - Device.Bgp.FiniteStateMachineError: - description: |- - Any error detected by the BGP Finite State Machine (e.g., receipt of an unexpected event) is indicated by sending the NOTIFICATION message with the Error Code-Finite State Machine Error(Error Code 5). The Sub Code used is 0. If a user wants to use non zero Sub Code then CustomError can be used. - Device.Bgp.CeaseError: - description: |- - In the absence of any fatal errors, a BGP peer can close its BGP connection by sending the NOTIFICATION message with the Error Code Cease. - type: object - properties: - subcode: - description: |- - The Error Subcode to be sent to the peer in the Cease NOTIFICATION. - type: string - default: admin_shutdown_code6_subcode2 - x-field-uid: 1 - x-enum: - max_number_prefix_reached_code6_subcode1: - x-field-uid: 1 - admin_shutdown_code6_subcode2: - x-field-uid: 2 - peer_deleted_code6_subcode3: - x-field-uid: 3 - admin_reset_code6_subcode4: - x-field-uid: 4 - connection_reject_code6_subcode5: - x-field-uid: 5 - other_config_changes_code6_subcode6: - x-field-uid: 6 - connection_collision_resolution_code6_subcode7: - x-field-uid: 7 - out_of_resources_code6_subcode8: - x-field-uid: 8 - bfd_session_down_code6_subcode9: - x-field-uid: 9 - enum: - - max_number_prefix_reached_code6_subcode1 - - admin_shutdown_code6_subcode2 - - peer_deleted_code6_subcode3 - - admin_reset_code6_subcode4 - - connection_reject_code6_subcode5 - - other_config_changes_code6_subcode6 - - connection_collision_resolution_code6_subcode7 - - out_of_resources_code6_subcode8 - - bfd_session_down_code6_subcode9 - Device.Bgp.CustomError: - description: |- - A BGP peer can send NOTIFICATION message with user defined Error Code and Error Subcode. - type: object - properties: - code: - description: |- - The Error code to be sent in the NOTIFICATION message to peer. - type: integer - x-field-uid: 1 - subcode: - description: |- - The Error Subcode to be sent in the NOTIFICATION message to peer. - type: integer - x-field-uid: 2 Bgp.V4Peer: description: |- Configuration for emulated BGPv4 peers and routes. @@ -3051,9 +2754,6 @@ components: type: string pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global - graceful_restart: - x-field-uid: 14 - $ref: '#/components/schemas/Bgp.GracefulRestart' Bgp.V4Interface: description: |- Configuration for emulated BGPv4 peers and routes on a single IPv4 interface. @@ -3140,7 +2840,7 @@ components: ext_communities: x-field-uid: 8 description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -3167,26 +2867,14 @@ components: Configuration for advanced BGP route range settings. type: object properties: - include_multi_exit_discriminator: - description: |- - BGP Multi Exit Discriminator attribute sent to the peer to help in the route selection process. If set to true, the Multi Exit Discriminator attribute will be included in the route advertisement. - type: boolean - default: true - x-field-uid: 3 multi_exit_discriminator: description: |- - The multi exit discriminator (MED) value used for route selection sent to the peer. + The multi exit discriminator (MED) value. A null value means the MED feature is not enabled. type: integer x-field-uid: 1 - include_origin: - description: |- - If set to true, the Origin attribute will be included in the route advertisement. - type: boolean - default: true - x-field-uid: 4 origin: description: |- - The origin attribute of a prefix can take three values: the prefix originates from an interior routing protocol 'igp', it originates from 'egp' or the origin is 'incomplete', if the prefix is learned through other means. + The origin value. A null value means the origin feature is not enabled. type: string default: igp x-field-uid: 2 @@ -3195,24 +2883,9 @@ components: x-field-uid: 1 egp: x-field-uid: 2 - incomplete: - x-field-uid: 3 enum: - igp - egp - - incomplete - include_local_preference: - description: |- - BGP Local Preference attribute sent to the peer to indicate the degree of preference for externally learned routes. If set to true, the Local Preference attribute will be included in the route advertisement. This should be included only for internal peers. - type: boolean - default: true - x-field-uid: 5 - local_preference: - description: |- - Value to be set in Local Preference attribute if include_local_preference is set to true. It is used for the selection of the path for the traffic leaving the AS. The route with the highest local preference value is preferred. - type: integer - default: 100 - x-field-uid: 6 Bgp.Community: description: |- BGP communities provide additional capability for tagging routes and for modifying BGP routing policy on upstream and downstream routers. BGP community is a 32-bit number which is broken into 16-bit AS number and a 16-bit custom value. @@ -3260,7 +2933,7 @@ components: x-field-uid: 3 Bgp.ExtCommunity: description: |- - The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. + The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is also divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. type: object properties: type: @@ -3512,7 +3185,7 @@ components: ext_communities: x-field-uid: 12 description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -3600,7 +3273,7 @@ components: x-field-uid: 8 ext_communities: description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -3683,7 +3356,11 @@ components: type: string x-field-uid: 2 Bgp.Advanced: + x-status: + status: under-review + additional_information: Bgp.Advanced is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Bgp.Advanced is under review'} Configuration for BGP advanced settings. type: object properties: @@ -3717,7 +3394,11 @@ components: type: string x-field-uid: 5 Bgp.Capability: + x-status: + status: under-review + additional_information: Bgp.Capability is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Bgp.Capability is under review'} Configuration for BGP capability settings. type: object properties: @@ -3873,7 +3554,11 @@ components: default: false x-field-uid: 25 Bgp.LearnedInformationFilter: + x-status: + status: under-review + additional_information: Bgp.LearnedInformationFilter is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Bgp.LearnedInformationFilter is under review'} Configuration for controlling storage of BGP learned information recieved from the peer. type: object properties: @@ -3970,13 +3655,6 @@ components: type: string pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global - ext_communities: - x-field-uid: 11 - description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. - type: array - items: - $ref: '#/components/schemas/Bgp.ExtCommunity' required: - name Bgp.AddPath: @@ -4071,13 +3749,6 @@ components: type: string pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global - ext_communities: - x-field-uid: 11 - description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. - type: array - items: - $ref: '#/components/schemas/Bgp.ExtCommunity' required: - name BgpSrte.V4Policy: @@ -4170,7 +3841,7 @@ components: x-field-uid: 11 ext_communities: description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -4408,7 +4079,11 @@ components: - push_ipv4_ipv6_enlp - do_not_push_enlp BgpSrte.SegmentList: + x-status: + status: under-review + additional_information: BgpSrte.SegmentList is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'BgpSrte.SegmentList is under review'} Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. type: object properties: @@ -4442,7 +4117,11 @@ components: required: - name BgpSrte.Segment: + x-status: + status: under-review + additional_information: BgpSrte.Segment is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'BgpSrte.Segment is under review'} A Segment sub-TLV describes a single segment in a segment list i.e., a single element of the explicit path. The Segment sub-TLVs are optional. type: object required: @@ -4677,7 +4356,11 @@ components: $ref: '#/components/schemas/BgpSrte.SRv6SIDEndpointBehaviorAndStructure' x-field-uid: 3 BgpSrte.SegmentCTypeSubTlv: + x-status: + status: under-review + additional_information: BgpSrte.SegmentCTypeSubTlv is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'BgpSrte.SegmentCTypeSubTlv is under review'} Type C: IPv4 Node Address with optional SID. type: object required: @@ -5109,7 +4792,7 @@ components: x-field-uid: 11 extcommunities: description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -5180,41 +4863,6 @@ components: default: true required: - name - Bgp.GracefulRestart: - description: |- - The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by a BGP speaker to indicate its ability to preserve its forwarding state during BGP restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent between BGP peers. After a BGP session has been established, and the initial routing update has been completed, an End-of-RIB (Routing Information Base) marker is sent in an UPDATE message to convey information about routing convergence. - type: object - properties: - enable_gr: - description: |- - If enabled, Graceful Restart capability is advertised in BGP OPEN messages. - type: boolean - default: false - x-field-uid: 1 - restart_time: - description: |- - This is the estimated duration (in seconds) it will take for the BGP session to be re-established after a restart. This can be used to speed up routing convergence by its peer in case the BGP speaker does not come back after a restart. - type: integer - format: uint32 - maximum: 4096 - default: 45 - x-field-uid: 2 - enable_llgr: - description: "If enabled, the \"Long-lived Graceful Restart Capability\"\ - , or \"LLGR Capability\"\nwill be advertised.\nThis capability MUST be\ - \ advertised in conjunction with the Graceful Restart \ncapability." - type: boolean - default: false - x-field-uid: 3 - stale_time: - description: "Duration (in seconds) specifying how long stale information\ - \ (for the AFI/SAFI) \nmay be retained. This is a three byte field and\ - \ is applicable \nonly if 'enable_llgr' is set to 'true'." - type: integer - format: uint32 - maximum: 16777215 - default: 10 - x-field-uid: 4 Bgp.V6Peer: description: |- Configuration for BGPv6 peer settings and routes. @@ -5329,9 +4977,6 @@ components: type: string pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global - graceful_restart: - x-field-uid: 15 - $ref: '#/components/schemas/Bgp.GracefulRestart' Bgp.V6Interface: description: |- Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. @@ -5359,7 +5004,11 @@ components: $ref: '#/components/schemas/Bgp.V6Peer' x-field-uid: 2 Bgp.V6SegmentRouting: + x-status: + status: under-review + additional_information: Bgp.V6SegmentRouting is under review description: |- + Status: {'status': 'under-review', 'additional_information': 'Bgp.V6SegmentRouting is under review'} Configuration for BGPv6 segment routing settings. type: object properties: @@ -5473,7 +5122,7 @@ components: ext_communities: x-field-uid: 8 description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -5592,7 +5241,7 @@ components: ext_communities: x-field-uid: 12 description: |- - Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. + Optional Extended Community settings. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' @@ -5865,3528 +5514,2297 @@ components: type: string format: ipv6 x-field-uid: 1 - Device.Rsvp: + Flow: description: |- - Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related specifications. + A high level data plane traffic flow. type: object + required: + - tx_rx + - name properties: - ipv4_interfaces: + tx_rx: description: |- - List of IPv4 RSVP connected interfaces. At least one interface should be present for device connected to the DUT. For unconnected devices, this array must be empty. + The transmit and receive endpoints. + $ref: '#/components/schemas/Flow.TxRx' + x-field-uid: 1 + packet: + description: "The header is a list of traffic protocol headers.\n\nThe order\ + \ of traffic protocol headers assigned to the list is the\norder they\ + \ will appear on the wire.\n\nIn the case of an empty list the keyword/value\ + \ of minItems: 1 \nindicates that an implementation MUST provide at least\ + \ one \nFlow.Header object.\n\nThe default value for the Flow.Header choice\ + \ property is ethernet \nwhich will result in an implementation by default\ + \ providing at least \none ethernet packet header." type: array + minItems: 1 items: - $ref: '#/components/schemas/Rsvp.Ipv4Interface' - x-field-uid: 1 - lsp_ipv4_interfaces: - description: |- - List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress endpoints. - type: array - items: - $ref: '#/components/schemas/Rsvp.LspIpv4Interface' + $ref: '#/components/schemas/Flow.Header' x-field-uid: 2 - name: + size: + description: |- + The size of the packets. + $ref: '#/components/schemas/Flow.Size' x-field-uid: 3 + rate: + description: |- + The transmit rate of the packets. + $ref: '#/components/schemas/Flow.Rate' + x-field-uid: 4 + duration: + description: |- + The transmit duration of the packets. + $ref: '#/components/schemas/Flow.Duration' + x-field-uid: 5 + metrics: + description: "Flow metrics. " + $ref: '#/components/schemas/Flow.Metrics' + x-field-uid: 6 + name: + x-field-uid: 7 description: |- Globally unique name of an object. It also serves as the primary key for arrays of objects. type: string pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global - Rsvp.Ipv4Interface: - description: |- - Configuration for RSVP Interface. + Flow.TxRx: + description: "A container for different types of transmit and receive \nendpoint\ + \ containers." type: object - required: - - ipv4_name - - neighbor_ip properties: - ipv4_name: - description: "The globally unique name of the IPv4 interface connected to\ - \ the DUT. This name must match the \"name\" field of the \"ipv4_addresses\"\ - \ on top which this RSVP interface is configured. \n\nx-constraint:\n\ - - /components/schemas/Device.Ipv4/properties/name\n" - type: string - x-constraint: - - /components/schemas/Device.Ipv4/properties/name - x-field-uid: 1 - neighbor_ip: + choice: description: |- - IPv4 address of the RSVP neighbor on this interface. + The type of transmit and receive container used by the flow. type: string - format: ipv4 + default: port + x-field-uid: 1 + x-enum: + port: + x-field-uid: 1 + device: + x-field-uid: 2 + enum: + - port + - device + port: + $ref: '#/components/schemas/Flow.Port' x-field-uid: 2 - label_space_start: - description: "The user-defined label space start value. The LSPs for which\ - \ this router acts as a egress are assigned labels from this label pool.The\"\ - label_space_start\" and \"label_space_end\" together defines this label-pool. " - type: integer - default: 1000 - minimum: 0 - maximum: 1048575 + device: + $ref: '#/components/schemas/Flow.Router' x-field-uid: 3 - label_space_end: - description: |- - The user-defined label space end value.The last label value that can be assigned to the LSPs for which this router acts as egress. - type: integer - default: 100000 - minimum: 0 - maximum: 1048575 - x-field-uid: 4 - enable_refresh_reduction: - description: |- - Enables sending of Refresh Reduction as described in RFC2961. - type: boolean - default: false - x-field-uid: 5 - summary_refresh_interval: - description: |- - The number of seconds between transmissions of successive Summary Refreshes. There is no specification specified maximum value. For clarity, setting the maximum to 1 hour. - type: integer - default: 30 - minimum: 1 - maximum: 3600 - x-field-uid: 6 - send_bundle: - description: |- - Enables aggregration of different RSVP messages within a single PDU. - type: boolean - default: false - x-field-uid: 7 - bundle_threshold: - description: |- - The number of milliseconds to wait after which RSVP will bundle different RSVP messages and transmit Bundle messages. - type: integer - default: 50 - minimum: 20 - maximum: 1000 - x-field-uid: 8 - enable_hello: - description: "Enables sending of Hello Messages as per RFC3209. \ - \ " - type: boolean - default: false - x-field-uid: 9 - hello_interval: - description: |- - If enable_hello is set to 'true', this specifies the minimum hello interval in seconds at which successive Hello Messages are sent as per RFC3209. There is no specification specified maximum value. For clarity, setting the maximum to 1 hour. - type: integer - default: 9 - minimum: 0 - maximum: 3600 - x-field-uid: 10 - timeout_multiplier: - description: |- - The number of missed hellos after which the node should consider RSVP Neighbor to have timed out. There is no specification specified maximum value. Setting the maximum allowed value to 10. - type: integer - default: 3 - minimum: 1 - maximum: 10 - x-field-uid: 11 - Rsvp.LspIpv4Interface: - description: |- - Configuration for RSVP LSP IPv4 Interface. + Flow.Port: + description: "A container for a transmit port and 0..n intended receive ports.\n\ + When assigning this container to a flow the flows's \npacket headers will\ + \ not be populated with any address resolution \ninformation such as source\ + \ and/or destination addresses. \nFor example Flow.Ethernet dst mac address\ + \ values will be defaulted to 0. \nFor full control over the Flow.properties.packet\ + \ header contents use this \ncontainer. " type: object required: - - ipv4_name + - tx_name properties: - ipv4_name: + tx_name: description: | - The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP ingress and egress endpoint for the LSPs configured on this interface. This must match the "name" field of either "ipv4_addresses" or "ipv4_loopbacks" on which this LSP interface is configured. + The unique name of a port that is the transmit port. x-constraint: - - /components/schemas/Device.Ipv4/properties/name - - /components/schemas/Device.Ipv4Loopback/properties/name + - /components/schemas/Port/properties/name + - /components/schemas/Lag/properties/name type: string x-constraint: - - /components/schemas/Device.Ipv4/properties/name - - /components/schemas/Device.Ipv4Loopback/properties/name + - /components/schemas/Port/properties/name + - /components/schemas/Lag/properties/name x-field-uid: 1 - p2p_egress_ipv4_lsps: - description: "Contains properties of Tail(Egress) LSPs. " - $ref: '#/components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp' + rx_name: + description: | + The unique name of a port that is the intended receive port. + + x-constraint: + - /components/schemas/Port/properties/name + - /components/schemas/Lag/properties/name + type: string + x-constraint: + - /components/schemas/Port/properties/name + - /components/schemas/Lag/properties/name x-field-uid: 2 - p2p_ingress_ipv4_lsps: - description: |- - Array of point-to-point RSVP-TE P2P LSPs originating from this interface. - type: array - items: - $ref: '#/components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp' - x-field-uid: 3 - Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp: + Flow.Router: description: |- - Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. + A container for declaring a map of 1..n transmit devices to 1..n receive devices. This allows for a single flow to have different tx to rx device flows such as a single one to one map or a many to many map. type: object required: - - name + - tx_names + - rx_names properties: - name: - x-field-uid: 1 - description: |- - Globally unique name of an object. It also serves as the primary key for arrays of objects. - type: string - pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ - x-unique: global - refresh_interval: - description: "The time in seconds between successive transmissions of RESV\ - \ Refreshes. The actual refresh interval is jittered by upto 50%. There\ - \ is no specification specified maximum value. For clarity, setting the\ - \ maximum to 1 hour. " - type: integer - default: 30 - minimum: 1 - maximum: 3600 - x-field-uid: 2 - timeout_multiplier: - description: |- - The number of missed PATH refreshes after which a recieving node should consider the LSP state to have timed out. There is no specification specified maximum value. Setting the maximum allowed value to 10. - type: integer - default: 3 - minimum: 1 - maximum: 10 - x-field-uid: 3 - reservation_style: - description: |- - It determines how RSVP-TE enabled network devices set up reservations along the path between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the style is chosen based on the value selected for this attribute. + mode: + description: "Determines the mapping of tx_names to rx_names.\n\nThe mesh\ + \ mode creates traffic between each value in tx_names to\nevery value\ + \ in rx_names except in the case where the individual \ntx_names value\ + \ is equal to rx_names value which will be ignored.\nIdentical values\ + \ in tx_names or rx_names MUST raise an error.\n\nThe one_to_one mode\ + \ creates traffic between each value pair in \nof tx_names and rx_names\ + \ by index.\nThe length of tx_names and rx_name MUST be the same.\nIdentical\ + \ values in tx_names or rx_names MUST raise an error." type: string + default: mesh + x-field-uid: 1 x-enum: - shared_explicit: + mesh: x-field-uid: 1 - fixed_filter: + one_to_one: x-field-uid: 2 - auto: - x-field-uid: 3 - default: shared_explicit - x-field-uid: 4 enum: - - shared_explicit - - fixed_filter - - auto - enable_fixed_label: - description: "If enabled, a specific fixed label will be advertised by the\ - \ egress or tail end for all Path messages received by this egress. This\ - \ can be leveraged to advertise Explicit or Implicit null labels. \ - \ " - type: boolean - default: false - x-field-uid: 5 - fixed_label_value: - description: |- - The fixed label value as advertised by egress in RESV message. Applicable only if 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected to have a minimum value of 16. - type: integer - default: 0 - minimum: 0 - maximum: 1048575 - x-field-uid: 6 - Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp: + - mesh + - one_to_one + tx_names: + type: array + items: + description: |- + The unique name of an emulated device that will be transmitting. + type: string + x-constraint: + - /components/schemas/Device.Ethernet/properties/name + - /components/schemas/Device.Ipv4/properties/name + - /components/schemas/Device.Ipv6/properties/name + - /components/schemas/Bgp.V4RouteRange/properties/name + - /components/schemas/Bgp.V6RouteRange/properties/name + - /components/schemas/Bgp.CMacIpRange/properties/name + example: + - Eth 1 + - Eth 2 + - Eth 3 + - IPv4 1 + - IPv6 1 + - Bgp V4RouteRange 1 + - Bgp V6RouteRange 1 + x-field-uid: 2 + description: | + TBD + + x-constraint: + - /components/schemas/Device.Ethernet/properties/name + - /components/schemas/Device.Ipv4/properties/name + - /components/schemas/Device.Ipv6/properties/name + - /components/schemas/Bgp.V4RouteRange/properties/name + - /components/schemas/Bgp.V6RouteRange/properties/name + - /components/schemas/Bgp.CMacIpRange/properties/name + rx_names: + type: array + items: + description: |- + The unique name of an emulated device that will be receiving. + type: string + x-constraint: + - /components/schemas/Device.Ethernet/properties/name + - /components/schemas/Device.Ipv4/properties/name + - /components/schemas/Device.Ipv6/properties/name + - /components/schemas/Bgp.V4RouteRange/properties/name + - /components/schemas/Bgp.V6RouteRange/properties/name + - /components/schemas/Bgp.CMacIpRange/properties/name + example: + - Eth 1 + - Eth 2 + - Eth 3 + - IPv4 1 + - IPv6 1 + - Bgp V4RouteRange 1 + - Bgp V6RouteRange 1 + x-field-uid: 3 + description: | + TBD + + x-constraint: + - /components/schemas/Device.Ethernet/properties/name + - /components/schemas/Device.Ipv4/properties/name + - /components/schemas/Device.Ipv6/properties/name + - /components/schemas/Bgp.V4RouteRange/properties/name + - /components/schemas/Bgp.V6RouteRange/properties/name + - /components/schemas/Bgp.CMacIpRange/properties/name + Flow.Header: description: |- - Configuration for an RSVP Ingress point-to-point LSP. + Configuration for all traffic packet headers type: object - required: - - remote_address - - name properties: - name: - x-field-uid: 1 - description: |- - Globally unique name of an object. It also serves as the primary key for arrays of objects. - type: string - pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ - x-unique: global - remote_address: - description: |- - IPv4 address of the remote endpoint of the LSP. + choice: + description: "The available types of flow headers. If one is not provided\ + \ the \ndefault ethernet packet header MUST be provided." type: string - format: ipv4 - x-field-uid: 2 - tunnel_id: - description: |- - The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. - type: integer - default: 1 - minimum: 1 - maximum: 65535 + default: ethernet + x-field-uid: 1 + x-enum: + custom: + x-field-uid: 1 + ethernet: + x-field-uid: 2 + vlan: + x-field-uid: 3 + vxlan: + x-field-uid: 4 + ipv4: + x-field-uid: 5 + ipv6: + x-field-uid: 6 + pfcpause: + x-field-uid: 7 + ethernetpause: + x-field-uid: 8 + tcp: + x-field-uid: 9 + udp: + x-field-uid: 10 + gre: + x-field-uid: 11 + gtpv1: + x-field-uid: 12 + gtpv2: + x-field-uid: 13 + arp: + x-field-uid: 14 + icmp: + x-field-uid: 15 + icmpv6: + x-field-uid: 16 + ppp: + x-field-uid: 17 + igmpv1: + x-field-uid: 18 + mpls: + x-field-uid: 19 + enum: + - custom + - ethernet + - vlan + - vxlan + - ipv4 + - ipv6 + - pfcpause + - ethernetpause + - tcp + - udp + - gre + - gtpv1 + - gtpv2 + - arp + - icmp + - icmpv6 + - ppp + - igmpv1 + - mpls + custom: + $ref: '#/components/schemas/Flow.Custom' + x-field-uid: 2 + ethernet: + $ref: '#/components/schemas/Flow.Ethernet' x-field-uid: 3 - lsp_id: - description: |- - The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. - type: integer - default: 1 - minimum: 1 - maximum: 65535 + vlan: + $ref: '#/components/schemas/Flow.Vlan' x-field-uid: 4 - refresh_interval: - description: "The time in seconds between successive transmissions of PATH\ - \ Refreshes. The actual refresh interval is jittered by upto 50%. There\ - \ is no specification specified maximum value. For clarity, setting the\ - \ maximum to 1 hour. " - type: integer - default: 30 - minimum: 1 - maximum: 3600 + vxlan: + $ref: '#/components/schemas/Flow.Vxlan' x-field-uid: 5 - timeout_multiplier: - description: |- - The number of missed RESV refreshes after which a recieving node should consider the LSP state to have timed out. There is no specification specified maximum value. Setting the maximum allowed value to 10. - type: integer - default: 3 - minimum: 1 - maximum: 10 + ipv4: + $ref: '#/components/schemas/Flow.Ipv4' x-field-uid: 6 - backup_lsp_id: - description: |- - The LSP id that will be used when creating a Make-Before-Break LSP when the active LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. - type: integer - default: 2 - minimum: 1 - maximum: 65535 + ipv6: + $ref: '#/components/schemas/Flow.Ipv6' x-field-uid: 7 - lsp_switchover_delay: - description: |- - The amount of delay in milliseconds that an implementation should wait for before switching traffic to the new LSP created after a Make-Before-Break is done on an LSP. The default value is 0 which means to switch immediately. An implementation should support a minimum delay value of at least 50ms . There is no specification specified maximum value. Setting maximum allowed value to 1 minute. If a delay value is supplied which is lesser than the minimum delay value supported, a warning should be provided indicating that the minimum value of LSP switchover delay is automatically increased to the supported minimum value. This warning should be included in the list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' Response. - type: integer - default: 0 - minimum: 0 - maximum: 60000 + pfcpause: + $ref: '#/components/schemas/Flow.PfcPause' x-field-uid: 8 - session_attribute: - description: "This contains the values of the fields to be included in the\ - \ SESSION_ATTRIBUTE object in the Path Message sent for the LSP. \ - \ " - $ref: '#/components/schemas/Rsvp.SessionAttribute' + ethernetpause: + $ref: '#/components/schemas/Flow.EthernetPause' x-field-uid: 9 - tspec: - description: "This contains the values of the fields to be included in the\ - \ TSPEC object in the Path Message sent for the LSP. " - $ref: '#/components/schemas/Rsvp.Tspec' + tcp: + $ref: '#/components/schemas/Flow.Tcp' x-field-uid: 10 - fast_reroute: - description: "This contains the values of the fields to be included in the\ - \ FAST_REROUTE object in the Path Message sent for the LSP. \nThis is\ - \ an optional object . If this attribute is not included , the FAST_REROUTE\ - \ object will not be included. " - $ref: '#/components/schemas/Rsvp.FastReroute' + udp: + $ref: '#/components/schemas/Flow.Udp' x-field-uid: 11 - ero: - description: "This contains the values of the fields to be included in the\ - \ ERO object in the Path Message sent for the LSP. \nThis is an optional\ - \ object . If this attribute is not included , the ERO object will not\ - \ be included. " - $ref: '#/components/schemas/Rsvp.Ero' + gre: + $ref: '#/components/schemas/Flow.Gre' x-field-uid: 12 - Rsvp.SessionAttribute: - description: |- - Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are defined in RFC4090 (Fast Reroute). + gtpv1: + $ref: '#/components/schemas/Flow.Gtpv1' + x-field-uid: 13 + gtpv2: + $ref: '#/components/schemas/Flow.Gtpv2' + x-field-uid: 14 + arp: + $ref: '#/components/schemas/Flow.Arp' + x-field-uid: 15 + icmp: + $ref: '#/components/schemas/Flow.Icmp' + x-field-uid: 16 + icmpv6: + $ref: '#/components/schemas/Flow.Icmpv6' + x-field-uid: 17 + ppp: + $ref: '#/components/schemas/Flow.Ppp' + x-field-uid: 18 + igmpv1: + $ref: '#/components/schemas/Flow.Igmpv1' + x-field-uid: 19 + mpls: + $ref: '#/components/schemas/Flow.Mpls' + x-field-uid: 20 + Flow.Custom: type: object + description: |- + Custom packet header + required: + - bytes properties: - auto_generate_session_name: + bytes: description: |- - If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE object in the Path Message for this LSP. - type: boolean - default: true - x-field-uid: 1 - session_name: - description: "If auto_generate_session_name is set to 'false', then the\ - \ value of this field is used to fill the Session Name field of the SESSION_ATTRIBUTE\ - \ object in the Path Message for this LSP. It is suggested to include\ - \ the Local IP, Remote IP, Tunnel ID and LSP ID in the auto-generated\ - \ Session Name to ensure uniqueness of the name in the test. The maximum\ - \ length of session name is 254 bytes. " + A custom packet header defined as a string of hex bytes. The string MUST contain sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be discarded. This packet header can be used in multiple places in the packet. type: string - minLength: 0 - maxLength: 254 + pattern: '^[A-Fa-f0-9: ]+$' + x-field-uid: 1 + Flow.Ethernet: + description: |- + Ethernet packet header + type: object + properties: + dst: + x-field-uid: 1 + $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst' + src: x-field-uid: 2 - setup_priority: - description: |- - Specifies the value of the Setup Priority field. This controls whether the LSP should pre-empt existing LSP setup with certain Holding Priority if resource limitation is encountered when setting up the LSP. (e.g. bandwidth availability). The value 0 is the highest priority while 7 is the lowest. - type: integer - default: 7 - minimum: 0 - maximum: 7 + $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src' + ether_type: x-field-uid: 3 - holding_priority: - description: |- - Specifies the value of the Holding Priority field. This controls whether a new LSP being created with certain Setup Priority should pre-empt this LSP if resource limitation is encountered when setting up the LSP. (e.g. bandwidth availability). The value 0 is the highest priority while 7 is the lowest. - type: integer - default: 7 - minimum: 0 - maximum: 7 + $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType' + pfc_queue: x-field-uid: 4 - local_protection_desired: - description: |- - This flag permits transit routers to use a local repair mechanism which may result in violation of the explicit route object. When a fault is detected on an adjacent downstream link or node, a transit router can reroute traffic for fast service restoration. - type: boolean - default: false - x-field-uid: 5 - label_recording_desired: - description: |- - This flag indicates that label information should be included when doing a route record. - type: boolean - default: false - x-field-uid: 6 - se_style_desired: - description: |- - This flag indicates that the tunnel ingress node may choose to reroute this tunnel without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) Style when responding with a Resv message. - type: boolean - default: false - x-field-uid: 7 - bandwidth_protection_desired: - description: |- - This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs along the protected LSP path that a backup path with a bandwidth guarantee is desired. This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object is included in the PATH message. If a FAST_REROUTE object is present in the Path message, then the bandwidth specified therein is to be guaranteed. - type: boolean - default: false - x-field-uid: 8 - node_protection_desired: - description: |- - This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs along a protected LSP path that it is desired to have a backup path that bypasses at least the next node of the protected LSP. - type: boolean - default: false - x-field-uid: 9 - resource_affinities: - description: "This is an optional object. If included the extended SESSION_ATTRIBUTE\ - \ object is sent in the Path message containing \nthe additional fields\ - \ included in this object. This contains a set of three bitmaps using\ - \ which further constraints can be\nset on the path calculated for the\ - \ LSP based on the Admin Group settings in the IGP (e.g ISIS or OSPF interface).\ - \ " - $ref: '#/components/schemas/Rsvp.ResourceAffinities' - x-field-uid: 10 - Rsvp.ResourceAffinities: - description: "This is an optional object. If included, the extended SESSION_ATTRIBUTE\ - \ object is sent in the Path message containing \nthe additional fields included\ - \ in this object. This contains a set of three bitmaps using which further\ - \ constraints can be\nset on the path calculated for the LSP based on the\ - \ Admin Group settings in the IGP (e.g ISIS or OSPF interface)." - type: object - properties: - exclude_any: - description: "A 32-bit vector representing a set of attribute filters associated\ - \ with a tunnel any of which renders a link unacceptable. A null set\ - \ (all bits set to zero) doesn't render the link unacceptable. The most\ - \ significant byte in the hex-string is the farthest to the left in the\ - \ byte sequence. Leading zero bytes in the configured value may be omitted\ - \ for brevity. " - type: string - format: hex - default: '0' - minLength: 0 - maxLength: 8 + $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue' + Flow.Vlan: + description: |- + VLAN packet header + type: object + properties: + priority: x-field-uid: 1 - include_any: - description: "A 32-bit vector representing a set of attribute filters associated\ - \ with a tunnel any of which renders a link acceptable. A null set (all\ - \ bits set to zero) automatically passes. The most significant byte in\ - \ the hex-string is the farthest to the left in the byte sequence. Leading\ - \ zero bytes in the configured value may be omitted for brevity. \ - \ " - type: string - format: hex - default: '0' - minLength: 0 - maxLength: 8 + $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority' + cfi: x-field-uid: 2 - include_all: - description: "A 32-bit vector representing a set of attribute filters associated\ - \ with a tunnel all of which must be present for a link to be acceptable.\ - \ A null set (all bits set to zero) automatically passes. The most significant\ - \ byte in the hex-string is the farthest to the left in the byte sequence.\ - \ Leading zero bytes in the configured value may be omitted for brevity.\ - \ " - type: string - format: hex - default: '0' - minLength: 0 - maxLength: 8 + $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi' + id: x-field-uid: 3 - Rsvp.Tspec: + $ref: '#/components/schemas/Pattern.Flow.Vlan.Id' + tpid: + x-field-uid: 4 + $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid' + Flow.Vxlan: description: |- - Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these parameters is defined in RFC2215. + VXLAN packet header type: object properties: - token_bucket_rate: - description: |- - The rate of the traffic to be carried in this LSP in bytes per second. This is part of the Token Bucket specification defined for a traffic flow defined in RFC2215. - type: number - format: float - default: 0 + flags: x-field-uid: 1 - token_bucket_size: - description: |- - The depth of the token bucket in bytes used to specify the Token Bucket characteristics of the traffic to be carried in the LSP. This is part of the Token Bucket specification defined for a traffic flow defined in RFC2215. - type: number - format: float - default: 0 + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags' + reserved0: x-field-uid: 2 - peak_data_rate: - description: |- - The peak data rate of the traffic in bytes per second used to specify the Token Bucket characteristics of the traffic to be carried in the LSP. This is part of the Token Bucket specification defined for a traffic flow defined in RFC2215. - type: number - format: float - default: 0 + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0' + vni: x-field-uid: 3 - minimum_policed_unit: - description: "Specifies the minium length of packet frames that will be\ - \ policed. " - type: integer - default: 0 - minimum: 0 - maximum: 65535 + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni' + reserved1: x-field-uid: 4 - maximum_policed_unit: - description: "Specifies the maximum length of packet frames that will be\ - \ policed. " - type: integer - default: 0 - minimum: 0 - maximum: 65535 - x-field-uid: 5 - Rsvp.FastReroute: - description: "Configuration for the optional RSVP-TE FAST_REROUTE object included\ - \ in Path Messages as defined in RFC4090. " + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1' + Flow.Ipv4: + description: |- + IPv4 packet header type: object properties: - setup_priority: - description: |- - Specifies the value of the Setup Priority field. This controls whether the backup LSP should pre-empt existing LSP that is setup with certain Holding Priority. While setting up a backup LSP, preemption of existing LSP can happen if resource limitation is encountered (e.g bandwidth availability). - type: integer - default: 7 - minimum: 0 - maximum: 7 + version: x-field-uid: 1 - holding_priority: - description: "Specifies the value of the Holding Priority field. This controls\ - \ whether a new LSP being created with certain Setup Priority should pre-empt\ - \ this LSP set up with this Holding Priority. While setting up a new LSP,\ - \ preemption of existing LSP can happen if resource limitation is encountered\ - \ (e.g bandwidth availability). " - type: integer - default: 7 - minimum: 0 - maximum: 7 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version' + header_length: x-field-uid: 2 - hop_limit: - description: |- - Specifies the value of the Hop Limit field. This controls the maximum number of hops the LSP should traverse to reach the LSP end-point. - type: integer - default: 3 - minimum: 0 - maximum: 255 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength' + priority: + $ref: '#/components/schemas/Flow.Ipv4.Priority' x-field-uid: 3 - bandwidth: - description: "Specifies the value of the Bandwidth field as a 32-bit IEEE\ - \ floating point integer, in bytes per second, as desired for the LSP. " - type: number - format: float - default: 0 + total_length: x-field-uid: 4 - exclude_any: - description: "A 32-bit vector representing a set of attribute filters associated\ - \ with a tunnel any of which renders a link unacceptable. A null set (all\ - \ bits set to zero) doesn't render the link unacceptable. The most significant\ - \ byte in the hex-string is the farthest to the left in the byte sequence.\ - \ Leading zero bytes in the configured value may be omitted for brevity.\ - \ " - type: string - format: hex - default: '0' - minLength: 0 - maxLength: 8 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength' + identification: x-field-uid: 5 - include_any: - description: "A 32-bit vector representing a set of attribute filters associated\ - \ with a tunnel any of which renders a link acceptable. A null set (all\ - \ bits set to zero) automatically passes. The most significant byte in\ - \ the hex-string is the farthest to the left in the byte sequence. Leading\ - \ zero bytes in the configured value may be omitted for brevity. " - type: string - format: hex - default: '0' - minLength: 0 - maxLength: 8 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification' + reserved: x-field-uid: 6 - include_all: - description: "A 32-bit vector representing a set of attribute filters associated\ - \ with a tunnel all of which must be present for a link to be acceptable.\ - \ A null set (all bits set to zero) automatically passes. The most significant\ - \ byte in the hex-string is the farthest to the left in the byte sequence.\ - \ Leading zero bytes in the configured value may be omitted for brevity.\ - \ " - type: string - format: hex - default: '0' - minLength: 0 - maxLength: 8 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved' + dont_fragment: x-field-uid: 7 - one_to_one_backup_desired: - description: "Requests protection via the one-to-one backup method. \ - \ " - type: boolean - default: false + $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment' + more_fragments: x-field-uid: 8 - facility_backup_desired: - description: "Requests protection via the facility backup method. \ - \ " - type: boolean - default: false + $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments' + fragment_offset: x-field-uid: 9 - Rsvp.Ero: - description: "Configuration for the optional RSVP-TE explicit route object(ERO)\ - \ object included in Path Messages. " + $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset' + time_to_live: + x-field-uid: 10 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive' + protocol: + x-field-uid: 11 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol' + header_checksum: + x-field-uid: 12 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderChecksum' + src: + x-field-uid: 13 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src' + dst: + x-field-uid: 14 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst' + Flow.Ipv4.Priority: + description: |- + A container for ipv4 raw, tos, dscp ip priorities. type: object properties: - prepend_neighbor_ip: - description: |- - Determines whether the IP address of the RSVP neighbor should be added as an ERO sub-object. If it is to be included, it can be included as a Loose hop or as a Strict hop. + choice: type: string + default: dscp + x-field-uid: 1 x-enum: - dont_prepend: + raw: x-field-uid: 1 - prepend_loose: + tos: x-field-uid: 2 - prepend_strict: + dscp: x-field-uid: 3 - default: prepend_loose - x-field-uid: 1 enum: - - dont_prepend - - prepend_loose - - prepend_strict - prefix_length: - description: "If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict',\ - \ then set this value as the prefix length of the ERO sub-object containing\ - \ egress IP address. " - type: integer - default: 32 - minimum: 0 - maximum: 32 + - raw + - tos + - dscp + raw: x-field-uid: 2 - subobjects: - description: |- - Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate hops to be traversed by the LSP while being forwarded towards the egress endpoint. These sub-objects are included after the optional sub-object containing IP address of egress endpoint of the LSP (when present). - type: array - items: - $ref: '#/components/schemas/Rsvp.Ero.Subobject' + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw' + tos: + $ref: '#/components/schemas/Flow.Ipv4.Tos' x-field-uid: 3 - Rsvp.Ero.Subobject: + dscp: + $ref: '#/components/schemas/Flow.Ipv4.Dscp' + x-field-uid: 4 + Flow.Ipv4.Dscp: description: |- - Configuration for the ERO sub-object. + Differentiated services code point (DSCP) packet field. type: object properties: - type: - description: |- - The type of the ERO sub-object, one of IPv4 Address or AS Number. - type: string - x-enum: - ipv4: - x-field-uid: 1 - as_number: - x-field-uid: 2 - default: ipv4 + phb: x-field-uid: 1 - enum: - - ipv4 - - as_number - ipv4_address: - description: |- - IPv4 address that this LSP should traverse through. This field is applicable only if the value of 'type' is set to 'ipv4'. - type: string - format: ipv4 - default: 0.0.0.0 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb' + ecn: x-field-uid: 2 - prefix_length: - description: |- - Prefix length for the IPv4 address in the ERO sub-object. This field is applicable only if the value of 'type' is set to 'ipv4'. - type: integer - default: 32 - minimum: 0 - maximum: 32 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn' + Flow.Ipv4.Tos: + description: |- + Type of service (TOS) packet field. + type: object + properties: + precedence: + x-field-uid: 1 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence' + delay: + x-field-uid: 2 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay' + throughput: x-field-uid: 3 - as_number: - description: |- - Autonomous System number to be set in the ERO sub-object that this LSP should traverse through. This field is applicable only if the value of 'type' is set to 'as_number'. Note that as per RFC3209, 4-byte AS encoding is not supported. - type: integer - default: 0 - minimum: 0 - maximum: 65535 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput' + reliability: x-field-uid: 4 - hop_type: - description: |- - The hop type of the ERO sub-object, one of Strict or Loose. - type: string - x-enum: - strict: - x-field-uid: 1 - loose: - x-field-uid: 2 - default: loose + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability' + monetary: x-field-uid: 5 - enum: - - strict - - loose - Flow: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary' + unused: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused' + Flow.Ipv6: description: |- - A high level data plane traffic flow. + IPv6 packet header type: object - required: - - tx_rx - - name properties: - tx_rx: - description: |- - The transmit and receive endpoints. - $ref: '#/components/schemas/Flow.TxRx' + version: x-field-uid: 1 - packet: - description: "The header is a list of traffic protocol headers.\n\nThe order\ - \ of traffic protocol headers assigned to the list is the\norder they\ - \ will appear on the wire.\n\nIn the case of an empty list the keyword/value\ - \ of minItems: 1 \nindicates that an implementation MUST provide at least\ - \ one \nFlow.Header object.\n\nThe default value for the Flow.Header choice\ - \ property is ethernet \nwhich will result in an implementation by default\ - \ providing at least \none ethernet packet header." - type: array - minItems: 1 - items: - $ref: '#/components/schemas/Flow.Header' + $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version' + traffic_class: x-field-uid: 2 - size: - description: |- - The size of the packets. - $ref: '#/components/schemas/Flow.Size' + $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass' + flow_label: x-field-uid: 3 - rate: - description: |- - The transmit rate of the packets. - $ref: '#/components/schemas/Flow.Rate' + $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel' + payload_length: x-field-uid: 4 - duration: - description: |- - The transmit duration of the packets. - $ref: '#/components/schemas/Flow.Duration' + $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength' + next_header: x-field-uid: 5 - metrics: - description: "Flow metrics. " - $ref: '#/components/schemas/Flow.Metrics' + $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader' + hop_limit: x-field-uid: 6 - name: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit' + src: x-field-uid: 7 - description: |- - Globally unique name of an object. It also serves as the primary key for arrays of objects. - type: string - pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ - x-unique: global - Flow.TxRx: - description: "A container for different types of transmit and receive \nendpoint\ - \ containers." + $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src' + dst: + x-field-uid: 8 + $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst' + Flow.PfcPause: + description: |- + IEEE 802.1Qbb PFC Pause packet header. type: object properties: - choice: - description: |- - The type of transmit and receive container used by the flow. - type: string - default: port + dst: x-field-uid: 1 - x-enum: - port: - x-field-uid: 1 - device: - x-field-uid: 2 - enum: - - port - - device - port: - $ref: '#/components/schemas/Flow.Port' + $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst' + src: x-field-uid: 2 - device: - $ref: '#/components/schemas/Flow.Router' + $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src' + ether_type: x-field-uid: 3 - Flow.Port: - description: "A container for a transmit port and 0..n intended receive ports.\n\ - When assigning this container to a flow the flows's \npacket headers will\ - \ not be populated with any address resolution \ninformation such as source\ - \ and/or destination addresses. \nFor example Flow.Ethernet dst mac address\ - \ values will be defaulted to 0. \nFor full control over the Flow.properties.packet\ - \ header contents use this \ncontainer. " - type: object - required: - - tx_name - properties: - tx_name: - description: | - The unique name of a port that is the transmit port. - - x-constraint: - - /components/schemas/Port/properties/name - - /components/schemas/Lag/properties/name - type: string - x-constraint: - - /components/schemas/Port/properties/name - - /components/schemas/Lag/properties/name - x-field-uid: 1 - rx_name: - description: | - The unique name of a port that is the intended receive port. - - x-constraint: - - /components/schemas/Port/properties/name - - /components/schemas/Lag/properties/name - type: string - x-constraint: - - /components/schemas/Port/properties/name - - /components/schemas/Lag/properties/name - x-field-uid: 2 - Flow.Router: - description: |- - A container for declaring a map of 1..n transmit devices to 1..n receive devices. This allows for a single flow to have different tx to rx device flows such as a single one to one map or a many to many map. - type: object - required: - - tx_names - - rx_names - properties: - mode: - description: "Determines the intent of creating traffic sub-flow(s) between\ - \ the device \nendpoints, from the entities of tx_names to the\ - \ entities of rx_names \nto derive how auto packet fields\ - \ can be populated with \nthe actual value(s) by the implementation.\n\ - \nThe one_to_one mode creates traffic sub-flow(s) between each\ - \ device endpoint pair in \ntx_names to rx_names by index.\nThe length\ - \ of tx_names and rx_names MUST be the same.\nThe same device name can\ - \ be repeated multiple times in tx_names or rx_names, in any order to\ - \ create desired meshing between device(s).\nFor 2 values in tx_names\ - \ and 2 values in rx_names, 2 device endpoint pairs would be generated\ - \ (each pair representing a traffic sub-flow).\n\nThe mesh mode\ - \ creates traffic sub-flow(s) between each value in tx_names to\nevery\ - \ value in rx_names, forming the device endpoint pair(s).\nFor 2 values\ - \ in tx_names and 3 values in rx_names, generated device endpoint pairs\ - \ would be 2x3=6. \n\nA generated device endpoint pair with same device\ - \ endpoint name for both transmit & receive device endpoint MUST raise\ - \ an error.\n\nPacket fields of type auto would be populated with\ - \ one value for each device endpoint pair (representing the traffic sub-flow).\ - \ \nThe value would be determined considering transmit & receive device\ - \ of the sub-flow. And the sequence of the populated value(s) \nwould\ - \ be in the order of generated device endpoint pair(s).\nIf 2 device endpoint\ - \ pairs are generated (based on mode, tx_names and rx_names), say (d1\ - \ to d3) and (d2 to d3), and ethernet.dst is set as auto, then\ - \ \nthe auto field would be replaced by the implementation with\ - \ a sequence of 2 values, [v1,v2] where \nv1 is determined using context\ - \ (d1,d3) and v2 using context (d2,d3).\nThe final outcome is that packets\ - \ generated on the wire will contain the values v1,v2,v1,... for ethernet.dst\ - \ field. Any non-auto packet fields \nshould be configured accordingly.\ - \ For example, non-auto packet field ethernet.src can be configured with\ - \ values [u1, u2], where \nu1 & u2 are source MAC of the connected interface\ - \ of device d1 and d2 respectively. Then packets on the wire will contain\ - \ correct value pairs \n(u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst)\ - \ fields." - type: string - default: mesh - x-field-uid: 1 - x-enum: - mesh: - x-field-uid: 1 - one_to_one: - x-field-uid: 2 - enum: - - mesh - - one_to_one - tx_names: - type: array - items: - description: |- - The unique name of an emulated device that will be transmitting. - type: string - x-constraint: - - /components/schemas/Device.Ethernet/properties/name - - /components/schemas/Device.Ipv4/properties/name - - /components/schemas/Device.Ipv6/properties/name - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Bgp.CMacIpRange/properties/name - - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name - example: - - Eth 1 - - Eth 2 - - Eth 3 - - IPv4 1 - - IPv6 1 - - Bgp V4RouteRange 1 - - Bgp V6RouteRange 1 - x-field-uid: 2 - description: | - TBD - - x-constraint: - - /components/schemas/Device.Ethernet/properties/name - - /components/schemas/Device.Ipv4/properties/name - - /components/schemas/Device.Ipv6/properties/name - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Bgp.CMacIpRange/properties/name - - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name - rx_names: - type: array - items: - description: |- - The unique name of an emulated device that will be receiving. - type: string - x-constraint: - - /components/schemas/Device.Ethernet/properties/name - - /components/schemas/Device.Ipv4/properties/name - - /components/schemas/Device.Ipv6/properties/name - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Bgp.CMacIpRange/properties/name - - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name - example: - - Eth 1 - - Eth 2 - - Eth 3 - - IPv4 1 - - IPv6 1 - - Bgp V4RouteRange 1 - - Bgp V6RouteRange 1 - x-field-uid: 3 - description: | - TBD - - x-constraint: - - /components/schemas/Device.Ethernet/properties/name - - /components/schemas/Device.Ipv4/properties/name - - /components/schemas/Device.Ipv6/properties/name - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Bgp.CMacIpRange/properties/name - - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name - Flow.Header: - description: |- - Configuration for all traffic packet headers - type: object - properties: - choice: - description: "The available types of flow headers. If one is not provided\ - \ the \ndefault ethernet packet header MUST be provided." - type: string - default: ethernet - x-field-uid: 1 - x-enum: - custom: - x-field-uid: 1 - ethernet: - x-field-uid: 2 - vlan: - x-field-uid: 3 - vxlan: - x-field-uid: 4 - ipv4: - x-field-uid: 5 - ipv6: - x-field-uid: 6 - pfcpause: - x-field-uid: 7 - ethernetpause: - x-field-uid: 8 - tcp: - x-field-uid: 9 - udp: - x-field-uid: 10 - gre: - x-field-uid: 11 - gtpv1: - x-field-uid: 12 - gtpv2: - x-field-uid: 13 - arp: - x-field-uid: 14 - icmp: - x-field-uid: 15 - icmpv6: - x-field-uid: 16 - ppp: - x-field-uid: 17 - igmpv1: - x-field-uid: 18 - mpls: - x-field-uid: 19 - enum: - - custom - - ethernet - - vlan - - vxlan - - ipv4 - - ipv6 - - pfcpause - - ethernetpause - - tcp - - udp - - gre - - gtpv1 - - gtpv2 - - arp - - icmp - - icmpv6 - - ppp - - igmpv1 - - mpls - custom: - $ref: '#/components/schemas/Flow.Custom' - x-field-uid: 2 - ethernet: - $ref: '#/components/schemas/Flow.Ethernet' - x-field-uid: 3 - vlan: - $ref: '#/components/schemas/Flow.Vlan' - x-field-uid: 4 - vxlan: - $ref: '#/components/schemas/Flow.Vxlan' - x-field-uid: 5 - ipv4: - $ref: '#/components/schemas/Flow.Ipv4' - x-field-uid: 6 - ipv6: - $ref: '#/components/schemas/Flow.Ipv6' - x-field-uid: 7 - pfcpause: - $ref: '#/components/schemas/Flow.PfcPause' - x-field-uid: 8 - ethernetpause: - $ref: '#/components/schemas/Flow.EthernetPause' - x-field-uid: 9 - tcp: - $ref: '#/components/schemas/Flow.Tcp' - x-field-uid: 10 - udp: - $ref: '#/components/schemas/Flow.Udp' - x-field-uid: 11 - gre: - $ref: '#/components/schemas/Flow.Gre' - x-field-uid: 12 - gtpv1: - $ref: '#/components/schemas/Flow.Gtpv1' - x-field-uid: 13 - gtpv2: - $ref: '#/components/schemas/Flow.Gtpv2' - x-field-uid: 14 - arp: - $ref: '#/components/schemas/Flow.Arp' - x-field-uid: 15 - icmp: - $ref: '#/components/schemas/Flow.Icmp' - x-field-uid: 16 - icmpv6: - $ref: '#/components/schemas/Flow.Icmpv6' - x-field-uid: 17 - ppp: - $ref: '#/components/schemas/Flow.Ppp' - x-field-uid: 18 - igmpv1: - $ref: '#/components/schemas/Flow.Igmpv1' - x-field-uid: 19 - mpls: - $ref: '#/components/schemas/Flow.Mpls' - x-field-uid: 20 - Flow.Custom: - type: object - description: |- - Custom packet header - required: - - bytes - properties: - bytes: - description: |- - A custom packet header defined as a string of hex bytes. The string MUST contain sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be discarded. This packet header can be used in multiple places in the packet. - type: string - pattern: '^[A-Fa-f0-9: ]+$' - x-field-uid: 1 - Flow.Ethernet: - description: |- - Ethernet packet header - type: object - properties: - dst: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst' - src: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src' - ether_type: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType' - pfc_queue: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue' - Flow.Vlan: - description: |- - VLAN packet header - type: object - properties: - priority: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority' - cfi: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi' - id: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Vlan.Id' - tpid: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid' - Flow.Vxlan: - description: |- - VXLAN packet header - type: object - properties: - flags: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags' - reserved0: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0' - vni: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni' - reserved1: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1' - Flow.Ipv4: - description: |- - IPv4 packet header - type: object - properties: - version: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version' - header_length: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength' - priority: - $ref: '#/components/schemas/Flow.Ipv4.Priority' - x-field-uid: 3 - total_length: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength' - identification: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification' - reserved: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved' - dont_fragment: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment' - more_fragments: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments' - fragment_offset: - x-field-uid: 9 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset' - time_to_live: - x-field-uid: 10 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive' - protocol: - x-field-uid: 11 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol' - header_checksum: - x-field-uid: 12 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderChecksum' - src: - x-field-uid: 13 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src' - dst: - x-field-uid: 14 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst' - Flow.Ipv4.Priority: - description: |- - A container for ipv4 raw, tos, dscp ip priorities. - type: object - properties: - choice: - type: string - default: dscp - x-field-uid: 1 - x-enum: - raw: - x-field-uid: 1 - tos: - x-field-uid: 2 - dscp: - x-field-uid: 3 - enum: - - raw - - tos - - dscp - raw: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw' - tos: - $ref: '#/components/schemas/Flow.Ipv4.Tos' - x-field-uid: 3 - dscp: - $ref: '#/components/schemas/Flow.Ipv4.Dscp' - x-field-uid: 4 - Flow.Ipv4.Dscp: - description: |- - Differentiated services code point (DSCP) packet field. - type: object - properties: - phb: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb' - ecn: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn' - Flow.Ipv4.Tos: - description: |- - Type of service (TOS) packet field. - type: object - properties: - precedence: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence' - delay: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay' - throughput: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput' - reliability: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability' - monetary: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary' - unused: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused' - Flow.Ipv6: - description: |- - IPv6 packet header - type: object - properties: - version: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version' - traffic_class: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass' - flow_label: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel' - payload_length: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength' - next_header: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader' - hop_limit: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit' - src: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src' - dst: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst' - Flow.PfcPause: - description: |- - IEEE 802.1Qbb PFC Pause packet header. - type: object - properties: - dst: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst' - src: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src' - ether_type: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType' - control_op_code: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode' - class_enable_vector: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector' - pause_class_0: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0' - pause_class_1: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1' - pause_class_2: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2' - pause_class_3: - x-field-uid: 9 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3' - pause_class_4: - x-field-uid: 10 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4' - pause_class_5: - x-field-uid: 11 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5' - pause_class_6: - x-field-uid: 12 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6' - pause_class_7: - x-field-uid: 13 - $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7' - Flow.EthernetPause: - description: |- - IEEE 802.3x global ethernet pause packet header - type: object - properties: - dst: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst' - src: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src' - ether_type: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType' - control_op_code: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode' - time: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time' - Flow.Tcp: - description: |- - TCP packet header - type: object - properties: - src_port: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort' - dst_port: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort' - seq_num: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum' - ack_num: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum' - data_offset: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset' - ecn_ns: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs' - ecn_cwr: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr' - ecn_echo: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho' - ctl_urg: - x-field-uid: 9 - $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg' - ctl_ack: - x-field-uid: 10 - $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck' - ctl_psh: - x-field-uid: 11 - $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh' - ctl_rst: - x-field-uid: 12 - $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst' - ctl_syn: - x-field-uid: 13 - $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn' - ctl_fin: - x-field-uid: 14 - $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin' - window: - x-field-uid: 15 - $ref: '#/components/schemas/Pattern.Flow.Tcp.Window' - Flow.Udp: - description: |- - UDP packet header - type: object - properties: - src_port: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort' - dst_port: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort' - length: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Udp.Length' - checksum: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Udp.Checksum' - Flow.Gre: - description: |- - Standard GRE packet header (RFC2784) - type: object - properties: - checksum_present: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent' - reserved0: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0' - version: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Gre.Version' - protocol: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol' - checksum: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Gre.Checksum' - reserved1: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1' - Flow.Gtpv1: - description: |- - GTPv1 packet header - type: object - properties: - version: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version' - protocol_type: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType' - reserved: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved' - e_flag: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag' - s_flag: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag' - pn_flag: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag' - message_type: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType' - message_length: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength' - teid: - x-field-uid: 9 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid' - squence_number: - x-field-uid: 10 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber' - n_pdu_number: - x-field-uid: 11 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber' - next_extension_header_type: - x-field-uid: 12 - $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType' - extension_headers: - description: |- - A list of optional extension headers. - type: array - items: - $ref: '#/components/schemas/Flow.GtpExtension' - x-field-uid: 13 - Flow.GtpExtension: - type: object - properties: - extension_length: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength' - contents: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents' - next_extension_header: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader' - Flow.Gtpv2: - description: |- - GTPv2 packet header - type: object - properties: - version: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version' - piggybacking_flag: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag' - teid_flag: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag' - spare1: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1' - message_type: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType' - message_length: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength' - teid: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid' - sequence_number: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber' - spare2: - x-field-uid: 9 - $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2' - Flow.Arp: - description: |- - ARP packet header - type: object - properties: - hardware_type: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType' - protocol_type: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType' - hardware_length: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength' - protocol_length: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength' - operation: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Arp.Operation' - sender_hardware_addr: - x-field-uid: 6 - $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr' - sender_protocol_addr: - x-field-uid: 7 - $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr' - target_hardware_addr: - x-field-uid: 8 - $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr' - target_protocol_addr: - x-field-uid: 9 - $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr' - Flow.Icmp: - description: |- - ICMP packet header - type: object - properties: - choice: - type: string - default: echo - x-field-uid: 1 - x-enum: - echo: - x-field-uid: 1 - enum: - - echo - echo: - $ref: '#/components/schemas/Flow.Icmp.Echo' - x-field-uid: 2 - Flow.Icmp.Echo: - description: |- - Packet Header for ICMP echo request - type: object - properties: - type: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type' - code: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code' - checksum: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Checksum' - identifier: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier' - sequence_number: - x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber' - Flow.Icmpv6: - description: |- - ICMPv6 packet header - type: object - properties: - choice: - type: string - default: echo - x-field-uid: 1 - x-enum: - echo: - x-field-uid: 1 - enum: - - echo - echo: - $ref: '#/components/schemas/Flow.Icmpv6.Echo' - x-field-uid: 2 - Flow.Icmpv6.Echo: - description: |- - Packet Header for ICMPv6 Echo - type: object - properties: - type: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type' - code: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code' - identifier: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier' - sequence_number: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType' + control_op_code: x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber' - checksum: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode' + class_enable_vector: x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Checksum' - Flow.Ppp: - description: |- - PPP packet header - type: object - properties: - address: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Ppp.Address' - control: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Ppp.Control' - protocol_type: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType' - Flow.Igmpv1: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector' + pause_class_0: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0' + pause_class_1: + x-field-uid: 7 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1' + pause_class_2: + x-field-uid: 8 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2' + pause_class_3: + x-field-uid: 9 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3' + pause_class_4: + x-field-uid: 10 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4' + pause_class_5: + x-field-uid: 11 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5' + pause_class_6: + x-field-uid: 12 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6' + pause_class_7: + x-field-uid: 13 + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7' + Flow.EthernetPause: description: |- - IGMPv1 packet header + IEEE 802.3x global ethernet pause packet header type: object properties: - version: + dst: x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version' - type: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst' + src: x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type' - unused: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src' + ether_type: x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused' - checksum: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType' + control_op_code: x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Checksum' - group_address: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode' + time: x-field-uid: 5 - $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress' - Flow.Mpls: - description: |- - MPLS packet header; When configuring multiple such headers, the count shall not exceed 20. - type: object - properties: - label: - x-field-uid: 1 - $ref: '#/components/schemas/Pattern.Flow.Mpls.Label' - traffic_class: - x-field-uid: 2 - $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass' - bottom_of_stack: - x-field-uid: 3 - $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack' - time_to_live: - x-field-uid: 4 - $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive' - Flow.Size: - description: |- - The frame size which overrides the total length of the packet - type: object - properties: - choice: - type: string - default: fixed - x-field-uid: 1 - x-enum: - fixed: - x-field-uid: 1 - increment: - x-field-uid: 2 - random: - x-field-uid: 3 - enum: - - fixed - - increment - - random - fixed: - type: integer - default: 64 - x-field-uid: 2 - increment: - $ref: '#/components/schemas/Flow.SizeIncrement' - x-field-uid: 3 - random: - $ref: '#/components/schemas/Flow.SizeRandom' - x-field-uid: 4 - Flow.SizeIncrement: - type: object - description: "Frame size that increments from a starting size to \nan ending\ - \ size incrementing by a step size." - properties: - start: - description: |- - Starting frame size in bytes - type: integer - minimum: 1 - default: 64 - x-field-uid: 1 - end: - description: |- - Ending frame size in bytes - type: integer - minimum: 64 - default: 1518 - x-field-uid: 2 - step: - description: |- - Step frame size in bytes - type: integer - default: 1 - x-field-uid: 3 - Flow.SizeRandom: - type: object + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time' + Flow.Tcp: description: |- - Random frame size from a min value to a max value. - properties: - min: - type: integer - default: 64 - x-field-uid: 1 - max: - type: integer - default: 1518 - x-field-uid: 2 - Flow.Rate: + TCP packet header type: object - description: |- - The rate of packet transmission properties: - choice: - description: |- - The available types of flow rate. - type: string - default: pps + src_port: x-field-uid: 1 - x-enum: - pps: - x-field-uid: 1 - bps: - x-field-uid: 2 - kbps: - x-field-uid: 3 - mbps: - x-field-uid: 4 - gbps: - x-field-uid: 5 - percentage: - x-field-uid: 6 - enum: - - pps - - bps - - kbps - - mbps - - gbps - - percentage - pps: - description: |- - Packets per second. - type: integer - format: int64 - minimum: 1 - default: 1000 + $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort' + dst_port: x-field-uid: 2 - bps: - description: |- - Bits per second. - type: integer - format: int64 - minimum: 672 - default: 1000000000 + $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort' + seq_num: x-field-uid: 3 - kbps: - description: |- - Kilobits per second. - type: integer - format: int64 - minimum: 1 - default: 1000000 + $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum' + ack_num: x-field-uid: 4 - mbps: - description: "Megabits per second. " - type: integer - format: int64 - minimum: 1 - default: 1000 + $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum' + data_offset: x-field-uid: 5 - gbps: - description: |- - Gigabits per second. - type: integer - format: int32 - minimum: 1 - default: 1 + $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset' + ecn_ns: x-field-uid: 6 - percentage: - description: |- - The percentage of a port location's available bandwidth. - type: number - format: float - minimum: 0 - maximum: 100 - default: 100 + $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs' + ecn_cwr: x-field-uid: 7 - Flow.Duration: - description: "A container for different transmit durations. " + $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr' + ecn_echo: + x-field-uid: 8 + $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho' + ctl_urg: + x-field-uid: 9 + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg' + ctl_ack: + x-field-uid: 10 + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck' + ctl_psh: + x-field-uid: 11 + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh' + ctl_rst: + x-field-uid: 12 + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst' + ctl_syn: + x-field-uid: 13 + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn' + ctl_fin: + x-field-uid: 14 + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin' + window: + x-field-uid: 15 + $ref: '#/components/schemas/Pattern.Flow.Tcp.Window' + Flow.Udp: + description: |- + UDP packet header type: object properties: - choice: - description: |- - A choice used to determine the type of duration. - type: string - default: continuous + src_port: x-field-uid: 1 - x-enum: - fixed_packets: - x-field-uid: 1 - fixed_seconds: - x-field-uid: 2 - burst: - x-field-uid: 3 - continuous: - x-field-uid: 4 - enum: - - fixed_packets - - fixed_seconds - - burst - - continuous - fixed_packets: - $ref: '#/components/schemas/Flow.FixedPackets' + $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort' + dst_port: x-field-uid: 2 - fixed_seconds: - $ref: '#/components/schemas/Flow.FixedSeconds' + $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort' + length: x-field-uid: 3 - burst: - $ref: '#/components/schemas/Flow.Burst' + $ref: '#/components/schemas/Pattern.Flow.Udp.Length' + checksum: x-field-uid: 4 - continuous: - $ref: '#/components/schemas/Flow.Continuous' - x-field-uid: 5 - Flow.Continuous: - description: "Transmit will be continuous and will not stop automatically. " + $ref: '#/components/schemas/Pattern.Flow.Udp.Checksum' + Flow.Gre: + description: |- + Standard GRE packet header (RFC2784) type: object properties: - gap: - description: |- - The minimum gap between packets expressed as bytes. - type: integer - minimum: 0 - default: 12 + checksum_present: x-field-uid: 1 - delay: - $ref: '#/components/schemas/Flow.Delay' + $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent' + reserved0: x-field-uid: 2 - Flow.Delay: - description: "The optional container to specify the delay before starting \n\ - transmission of packets." + $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0' + version: + x-field-uid: 3 + $ref: '#/components/schemas/Pattern.Flow.Gre.Version' + protocol: + x-field-uid: 4 + $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol' + checksum: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Gre.Checksum' + reserved1: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1' + Flow.Gtpv1: + description: |- + GTPv1 packet header type: object properties: - choice: - type: string - default: bytes + version: x-field-uid: 1 - x-enum: - bytes: - x-field-uid: 1 - nanoseconds: - x-field-uid: 2 - microseconds: - x-field-uid: 3 - enum: - - bytes - - nanoseconds - - microseconds - bytes: - description: |- - The delay before starting transmission of packets. - A value of 0 indicates no delay. - type: number - format: float - minimum: 0 - default: 0 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version' + protocol_type: x-field-uid: 2 - nanoseconds: - description: |- - The delay before starting transmission of packets. - A value of 0 indicates no delay. - type: number - format: float - minimum: 0 - default: 0 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType' + reserved: x-field-uid: 3 - microseconds: - description: |- - The delay before starting transmission of packets. - A value of 0 indicates no delay. - type: number - format: float - minimum: 0 - default: 0 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved' + e_flag: x-field-uid: 4 - Flow.FixedPackets: - description: |- - Transmit a fixed number of packets after which the flow will stop. + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag' + s_flag: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag' + pn_flag: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag' + message_type: + x-field-uid: 7 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType' + message_length: + x-field-uid: 8 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength' + teid: + x-field-uid: 9 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid' + squence_number: + x-field-uid: 10 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber' + n_pdu_number: + x-field-uid: 11 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber' + next_extension_header_type: + x-field-uid: 12 + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType' + extension_headers: + description: |- + A list of optional extension headers. + type: array + items: + $ref: '#/components/schemas/Flow.GtpExtension' + x-field-uid: 13 + Flow.GtpExtension: type: object properties: - packets: - description: |- - Stop transmit of the flow after this number of packets. - type: integer - minimum: 1 - default: 1 + extension_length: x-field-uid: 1 - gap: - description: |- - The minimum gap between packets expressed as bytes. - type: integer - minimum: 0 - default: 12 + $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength' + contents: x-field-uid: 2 - delay: - $ref: '#/components/schemas/Flow.Delay' + $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents' + next_extension_header: x-field-uid: 3 - Flow.FixedSeconds: + $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader' + Flow.Gtpv2: description: |- - Transmit for a fixed number of seconds after which the flow will stop. + GTPv2 packet header type: object properties: - seconds: - description: |- - Stop transmit of the flow after this number of seconds. - type: number - minimum: 0 - default: 1 + version: x-field-uid: 1 - gap: - description: |- - The minimum gap between packets expressed as bytes. - type: integer - minimum: 0 - default: 12 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version' + piggybacking_flag: x-field-uid: 2 - delay: - $ref: '#/components/schemas/Flow.Delay' + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag' + teid_flag: x-field-uid: 3 - Flow.Burst: - description: "Transmits continuous or fixed burst of packets. \nFor continuous\ - \ burst of packets, it will not automatically stop.\nFor fixed burst of packets,\ - \ it will stop after transmitting fixed number of bursts. " - type: object - properties: - bursts: - description: |- - The number of packet bursts transmitted per flow. - A value of 0 implies continuous burst of packets. - type: integer - minimum: 0 - default: 0 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag' + spare1: + x-field-uid: 4 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1' + message_type: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType' + message_length: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength' + teid: + x-field-uid: 7 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid' + sequence_number: + x-field-uid: 8 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber' + spare2: + x-field-uid: 9 + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2' + Flow.Arp: + description: |- + ARP packet header + type: object + properties: + hardware_type: x-field-uid: 1 - packets: - description: |- - The number of packets transmitted per burst. - type: integer - minimum: 1 - default: 1 + $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType' + protocol_type: x-field-uid: 2 - gap: - description: |- - The minimum gap between packets expressed as bytes. - type: integer - minimum: 0 - default: 12 + $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType' + hardware_length: x-field-uid: 3 - inter_burst_gap: - $ref: '#/components/schemas/Flow.Duration.InterBurstGap' + $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength' + protocol_length: x-field-uid: 4 - Flow.Duration.InterBurstGap: - type: object + $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength' + operation: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Arp.Operation' + sender_hardware_addr: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr' + sender_protocol_addr: + x-field-uid: 7 + $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr' + target_hardware_addr: + x-field-uid: 8 + $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr' + target_protocol_addr: + x-field-uid: 9 + $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr' + Flow.Icmp: description: |- - The optional container for specifying a gap between bursts. + ICMP packet header + type: object properties: choice: - description: |- - The type of inter burst gap units. type: string - default: bytes + default: echo x-field-uid: 1 x-enum: - bytes: + echo: x-field-uid: 1 - nanoseconds: - x-field-uid: 2 - microseconds: - x-field-uid: 3 enum: - - bytes - - nanoseconds - - microseconds - bytes: - description: |- - The amount of time between bursts expressed in bytes. - A value of 0 indicates no gap between bursts. - type: number - format: double - minimum: 0 - default: 12 + - echo + echo: + $ref: '#/components/schemas/Flow.Icmp.Echo' x-field-uid: 2 - nanoseconds: - description: |- - The amount of time between bursts expressed in nanoseconds. - A value of 0 indicates no gap between bursts. - type: number - format: double - minimum: 0 - default: 96 - x-field-uid: 3 - microseconds: - description: |- - The amount of time between bursts expressed in microseconds. - A value of 0 indicates no gap between bursts. - type: number - format: double - minimum: 0 - default: 0.096 - x-field-uid: 4 - Flow.Metrics: + Flow.Icmp.Echo: description: |- - The optional container for configuring flow metrics. + Packet Header for ICMP echo request type: object properties: - enable: - description: "Enables flow metrics.\nEnabling this option may affect the\ - \ resultant packet payload due to \nadditional instrumentation data." - type: boolean - default: false + type: x-field-uid: 1 - loss: - description: |- - Enables additional flow metric loss calculation. - type: boolean - default: false + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type' + code: x-field-uid: 2 - timestamps: - description: |- - Enables additional flow metric first and last timestamps. - type: boolean - default: false + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code' + checksum: x-field-uid: 3 - latency: - description: |- - Latency metrics. - $ref: '#/components/schemas/Flow.Latency.Metrics' + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Checksum' + identifier: x-field-uid: 4 - Flow.Latency.Metrics: + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier' + sequence_number: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber' + Flow.Icmpv6: description: |- - The optional container for per flow latency metric configuration. + ICMPv6 packet header type: object properties: - enable: - description: "True to enable latency metrics using timestamps.\n\nEnabling\ - \ this option may affect the resultant packet payload due to \nadditional\ - \ instrumentation data." - type: boolean - default: false - x-field-uid: 1 - mode: - description: "Select the type of latency measurement. The different types\ - \ of \nlatency measurements are:\n\n\nstore_forward:\nThe time interval\ - \ starting when the last bit of the frame leaves the\nsending port and\ - \ ending when the first bit of the frame is seen on\nthe receiving port\ - \ (LIFO). This is based on the RFC 1242 standard.\n\n\ncut_through:\n\ - The time interval starting when the first bit of the frame leaves\nthe\ - \ sending port and ending when the first bit of the frame is seen\non\ - \ the receiving port (FIFO). This is based on the RFC 1242 \nstandard." + choice: type: string - default: store_forward - x-field-uid: 2 + default: echo + x-field-uid: 1 x-enum: - store_forward: + echo: x-field-uid: 1 - cut_through: - x-field-uid: 2 enum: - - store_forward - - cut_through - Event: + - echo + echo: + $ref: '#/components/schemas/Flow.Icmpv6.Echo' + x-field-uid: 2 + Flow.Icmpv6.Echo: description: |- - The optional container for event configuration. + Packet Header for ICMPv6 Echo type: object properties: - enable: - description: "True to enable all events. \nEnabling this option may affect\ - \ the resultant packet payload due to \nadditional instrumentation data." - type: boolean - default: false + type: x-field-uid: 1 - link: - $ref: '#/components/schemas/Event.Link' + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type' + code: x-field-uid: 2 - rx_rate_threshold: - $ref: '#/components/schemas/Event.RxRateThreshold' + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code' + identifier: x-field-uid: 3 - route_advertise_withdraw: - $ref: '#/components/schemas/Event.RouteAdvertiseWithdraw' + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier' + sequence_number: x-field-uid: 4 - Event.RxRateThreshold: + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber' + checksum: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Checksum' + Flow.Ppp: description: |- - The optional container for rx rate threshold event configuration. + PPP packet header type: object properties: - enable: - description: "True to enable the rx_rate_threshold event. \nEnabling this\ - \ option may affect the resultant packet payload due to \nadditional instrumentation\ - \ data." - type: boolean - default: false + address: x-field-uid: 1 - threshold: - description: "True to enable notifications when the rx rate of a flow passes\ - \ above \nor below the threshold value. " - type: number - format: float - maximum: 100 - minimum: 0 - default: 95 + $ref: '#/components/schemas/Pattern.Flow.Ppp.Address' + control: x-field-uid: 2 - Event.Link: + $ref: '#/components/schemas/Pattern.Flow.Ppp.Control' + protocol_type: + x-field-uid: 3 + $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType' + Flow.Igmpv1: description: |- - The optional container for link up/down event configuration. + IGMPv1 packet header type: object properties: - enable: - description: "True to enable notifications when a link up/down event occurs. " - type: boolean - default: false + version: x-field-uid: 1 - Event.RouteAdvertiseWithdraw: + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version' + type: + x-field-uid: 2 + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type' + unused: + x-field-uid: 3 + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused' + checksum: + x-field-uid: 4 + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Checksum' + group_address: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress' + Flow.Mpls: description: |- - The optional container for route advertise/withdraw event configuration. + MPLS packet header; When configuring multiple such headers, the count shall not exceed 20. type: object properties: - enable: - description: "True to enable notifications when a route advertise/withdraw\ - \ \nevent occurs. " - type: boolean - default: false + label: x-field-uid: 1 - Event.Request: + $ref: '#/components/schemas/Pattern.Flow.Mpls.Label' + traffic_class: + x-field-uid: 2 + $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass' + bottom_of_stack: + x-field-uid: 3 + $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack' + time_to_live: + x-field-uid: 4 + $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive' + Flow.Size: + description: |- + The frame size which overrides the total length of the packet type: object properties: - type: - description: "Constrain the events being returned by specifying event types.\n\ - If the list is empty then all event types will be returned. " - type: array - items: - type: string - example: route_withdraw - x-enum: - link_down: - x-field-uid: 1 - link_up: - x-field-uid: 2 - route_withdraw: - x-field-uid: 3 - route_advertise: - x-field-uid: 4 - flow_rx_rate_above_threshold: - x-field-uid: 5 - flow_rx_rate_below_threshold: - x-field-uid: 6 - enum: - - link_down - - link_up - - route_withdraw - - route_advertise - - flow_rx_rate_above_threshold - - flow_rx_rate_below_threshold + choice: + type: string + default: fixed x-field-uid: 1 - source: - description: "Constrain the events being returned by specifying event sources.\ - \ \nIf the list is empty then all event sources will be returned. \n\n\ - x-constraint:\n- /components/schemas/Port/properties/name\n- /components/schemas/Bgp.V4RouteRange/name\n\ - - /components/schemas/Bgp.V6RouteRange/name\n" - type: array - items: - type: string - x-constraint: - - /components/schemas/Port/properties/name - - /components/schemas/Bgp.V4RouteRange/name - - /components/schemas/Bgp.V6RouteRange/name + x-enum: + fixed: + x-field-uid: 1 + increment: + x-field-uid: 2 + random: + x-field-uid: 3 + enum: + - fixed + - increment + - random + fixed: + type: integer + default: 64 x-field-uid: 2 - Event.Subscription: - description: "A container that describes what events a system should provide\ - \ and \noptionally where to publish them. " + increment: + $ref: '#/components/schemas/Flow.SizeIncrement' + x-field-uid: 3 + random: + $ref: '#/components/schemas/Flow.SizeRandom' + x-field-uid: 4 + Flow.SizeIncrement: type: object + description: "Frame size that increments from a starting size to \nan ending\ + \ size incrementing by a step size." properties: - events: - $ref: '#/components/schemas/Event.Request' + start: + description: |- + Starting frame size in bytes + type: integer + minimum: 1 + default: 64 x-field-uid: 1 - callback_url: + end: description: |- - Indicates where a client wants to be notified of the events set in - the events property. - If this property is empty or null then no event notifications will - be forwarded. - type: string - format: uri - example: https://127.0.0.1/event/notification + Ending frame size in bytes + type: integer + minimum: 64 + default: 1518 x-field-uid: 2 - Lldp: + step: + description: |- + Step frame size in bytes + type: integer + default: 1 + x-field-uid: 3 + Flow.SizeRandom: + type: object description: |- - Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf + Random frame size from a min value to a max value. + properties: + min: + type: integer + default: 64 + x-field-uid: 1 + max: + type: integer + default: 1518 + x-field-uid: 2 + Flow.Rate: type: object - required: - - connection - - name + description: |- + The rate of packet transmission properties: - connection: - description: "The unique name of the object on which LLDP is running. " - $ref: '#/components/schemas/Lldp.Connection' + choice: + description: |- + The available types of flow rate. + type: string + default: pps x-field-uid: 1 - chassis_id: + x-enum: + pps: + x-field-uid: 1 + bps: + x-field-uid: 2 + kbps: + x-field-uid: 3 + mbps: + x-field-uid: 4 + gbps: + x-field-uid: 5 + percentage: + x-field-uid: 6 + enum: + - pps + - bps + - kbps + - mbps + - gbps + - percentage + pps: description: |- - The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint identifier associated with the transmitting LLDP agent. If mac address is specified it should be in colon seperated mac address format. - $ref: '#/components/schemas/Lldp.ChassisId' + Packets per second. + type: integer + format: int64 + minimum: 1 + default: 1000 x-field-uid: 2 - port_id: + bps: description: |- - The Port ID is a mandatory TLV which identifies the port component of the endpoint identifier associated with the transmitting LLDP agent. If the specified port is an IEEE 802.3 Repeater port, then this TLV is optional. - $ref: '#/components/schemas/Lldp.PortId' + Bits per second. + type: integer + format: int64 + minimum: 672 + default: 1000000000 x-field-uid: 3 - system_name: + kbps: description: |- - The system name field shall contain an alpha-numeric string that indicates the system's administratively assigned name. The system name should be the system's fully qualified domain name. If implementations support IETF RFC 3418, the sysName object should be used for this field. - $ref: '#/components/schemas/Lldp.SystemName' + Kilobits per second. + type: integer + format: int64 + minimum: 1 + default: 1000000 x-field-uid: 4 - hold_time: - description: |- - Specifies the amount of time in seconds a receiving device should maintain LLDP information sent by the device before discarding it. + mbps: + description: "Megabits per second. " type: integer - minimum: 10 - maximum: 65535 - default: 120 + format: int64 + minimum: 1 + default: 1000 x-field-uid: 5 - advertisement_interval: + gbps: description: |- - Set the transmission frequency of LLDP updates in seconds. + Gigabits per second. type: integer - minimum: 5 - maximum: 65534 - default: 30 + format: int32 + minimum: 1 + default: 1 x-field-uid: 6 - name: - x-field-uid: 7 + percentage: description: |- - Globally unique name of an object. It also serves as the primary key for arrays of objects. - type: string - pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ - x-unique: global - Lldp.Connection: - description: "LLDP connection to a test port. In future if more connection options\ - \ arise LLDP connection object will be enhanced. " + The percentage of a port location's available bandwidth. + type: number + format: float + minimum: 0 + maximum: 100 + default: 100 + x-field-uid: 7 + Flow.Duration: + description: "A container for different transmit durations. " type: object properties: choice: description: |- - The name of the test port or other connection objects on which LLDP is configured. + A choice used to determine the type of duration. type: string + default: continuous x-field-uid: 1 x-enum: - port_name: + fixed_packets: x-field-uid: 1 + fixed_seconds: + x-field-uid: 2 + burst: + x-field-uid: 3 + continuous: + x-field-uid: 4 enum: - - port_name - port_name: - description: | - Name of the test port on which LLDP is configured on. - - x-constraint: - - /components/schemas/Port/properties/name - type: string - x-constraint: - - /components/schemas/Port/properties/name + - fixed_packets + - fixed_seconds + - burst + - continuous + fixed_packets: + $ref: '#/components/schemas/Flow.FixedPackets' x-field-uid: 2 - Lldp.ChassisId: - description: |- - The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint identifier associated with the transmitting LLDP agent. This field identifies the format and source of the chassis identifier string. It is based on the enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. + fixed_seconds: + $ref: '#/components/schemas/Flow.FixedSeconds' + x-field-uid: 3 + burst: + $ref: '#/components/schemas/Flow.Burst' + x-field-uid: 4 + continuous: + $ref: '#/components/schemas/Flow.Continuous' + x-field-uid: 5 + Flow.Continuous: + description: "Transmit will be continuous and will not stop automatically. " type: object properties: - choice: + gap: description: |- - Chassis ID subtype to be used in Chassis ID TLV. + The minimum gap between packets expressed as bytes. + type: integer + minimum: 0 + default: 12 + x-field-uid: 1 + delay: + $ref: '#/components/schemas/Flow.Delay' + x-field-uid: 2 + Flow.Delay: + description: "The optional container to specify the delay before starting \n\ + transmission of packets." + type: object + properties: + choice: type: string - default: mac_address_subtype + default: bytes x-field-uid: 1 x-enum: - mac_address_subtype: + bytes: x-field-uid: 1 - interface_name_subtype: + nanoseconds: x-field-uid: 2 - local_subtype: + microseconds: x-field-uid: 3 enum: - - mac_address_subtype - - interface_name_subtype - - local_subtype - mac_address_subtype: - $ref: '#/components/schemas/Lldp.ChassisMacSubType' + - bytes + - nanoseconds + - microseconds + bytes: + description: |- + The delay before starting transmission of packets. + A value of 0 indicates no delay. + type: number + format: float + minimum: 0 + default: 0 x-field-uid: 2 - interface_name_subtype: + nanoseconds: description: |- - Name of an interface of the chassis that uniquely identifies the chassis. - type: string + The delay before starting transmission of packets. + A value of 0 indicates no delay. + type: number + format: float + minimum: 0 + default: 0 x-field-uid: 3 - local_subtype: + microseconds: description: |- - Locally assigned name of the chassis. - type: string + The delay before starting transmission of packets. + A value of 0 indicates no delay. + type: number + format: float + minimum: 0 + default: 0 x-field-uid: 4 - Lldp.PortId: + Flow.FixedPackets: description: |- - The Port ID is a mandatory TLV which identifies the port component of the endpoint identifier associated with the transmitting LLDP agent.This field identifies the format and source of the port identifier string. It is based on the enumerator defined by the PtopoPortIdType object from RFC2922. + Transmit a fixed number of packets after which the flow will stop. type: object properties: - choice: + packets: description: |- - Port ID subtype to be used in Port ID TLV. - type: string - default: interface_name_subtype + Stop transmit of the flow after this number of packets. + type: integer + minimum: 1 + default: 1 x-field-uid: 1 - x-enum: - mac_address_subtype: - x-field-uid: 1 - interface_name_subtype: - x-field-uid: 2 - local_subtype: - x-field-uid: 3 - enum: - - mac_address_subtype - - interface_name_subtype - - local_subtype - mac_address_subtype: + gap: description: |- - The MAC Address configured in the Port ID TLV. - type: string + The minimum gap between packets expressed as bytes. + type: integer + minimum: 0 + default: 12 x-field-uid: 2 - interface_name_subtype: - $ref: '#/components/schemas/Lldp.PortInterfaceNameSubType' + delay: + $ref: '#/components/schemas/Flow.Delay' x-field-uid: 3 - local_subtype: - description: |- - The Locally assigned name configured in the Port ID TLV. - type: string - x-field-uid: 4 - Lldp.ChassisMacSubType: - description: "The MAC address configured in the Chassis ID TLV. " + Flow.FixedSeconds: + description: |- + Transmit for a fixed number of seconds after which the flow will stop. type: object properties: - choice: + seconds: description: |- - In auto mode the system generated value is set for this property, while if the choice is selected as value, a user configured value will be used for this property. - type: string - default: auto + Stop transmit of the flow after this number of seconds. + type: number + minimum: 0 + default: 1 x-field-uid: 1 - x-enum: - auto: - x-field-uid: 1 - value: - x-field-uid: 2 - enum: - - auto - - value - auto: + gap: description: |- - The OTG implementation must provide a system generated value for this property. - type: string - format: mac + The minimum gap between packets expressed as bytes. + type: integer + minimum: 0 + default: 12 x-field-uid: 2 - value: - description: |- - User must specify a value if mode is not auto. - type: string - format: mac + delay: + $ref: '#/components/schemas/Flow.Delay' x-field-uid: 3 - Lldp.PortInterfaceNameSubType: - description: "The interface name configured in the Port ID TLV. " + Flow.Burst: + description: "Transmits continuous or fixed burst of packets. \nFor continuous\ + \ burst of packets, it will not automatically stop.\nFor fixed burst of packets,\ + \ it will stop after transmitting fixed number of bursts. " type: object properties: - choice: + bursts: description: |- - In auto mode the system generated value is set for this property, while if the choice is selected as value, a user configured value will be used for this property. - type: string - default: auto + The number of packet bursts transmitted per flow. + A value of 0 implies continuous burst of packets. + type: integer + minimum: 0 + default: 0 x-field-uid: 1 - x-enum: - auto: - x-field-uid: 1 - value: - x-field-uid: 2 - enum: - - auto - - value - auto: + packets: description: |- - The OTG implementation must provide a system generated value for this property. - type: string + The number of packets transmitted per burst. + type: integer + minimum: 1 + default: 1 x-field-uid: 2 - value: + gap: description: |- - User must specify a value if mode is not auto. - type: string + The minimum gap between packets expressed as bytes. + type: integer + minimum: 0 + default: 12 x-field-uid: 3 - Lldp.SystemName: - description: "The system Name configured in the System Name TLV. " + inter_burst_gap: + $ref: '#/components/schemas/Flow.Duration.InterBurstGap' + x-field-uid: 4 + Flow.Duration.InterBurstGap: type: object + description: |- + The optional container for specifying a gap between bursts. properties: choice: description: |- - In auto mode the system generated value is set for this property, while if the choice is selected as value, a user configured value will be used for this property. + The type of inter burst gap units. type: string - default: auto + default: bytes x-field-uid: 1 x-enum: - auto: + bytes: x-field-uid: 1 - value: + nanoseconds: x-field-uid: 2 + microseconds: + x-field-uid: 3 enum: - - auto - - value - auto: + - bytes + - nanoseconds + - microseconds + bytes: description: |- - The OTG implementation must provide a system generated value for this property. - type: string + The amount of time between bursts expressed in bytes. + A value of 0 indicates no gap between bursts. + type: number + format: double + minimum: 0 + default: 12 x-field-uid: 2 - value: + nanoseconds: description: |- - User must specify a value if mode is not auto. - type: string + The amount of time between bursts expressed in nanoseconds. + A value of 0 indicates no gap between bursts. + type: number + format: double + minimum: 0 + default: 96 x-field-uid: 3 - Response.Error: - description: |- - A list of errors that may have occurred while executing the request. - type: object - properties: - errors: - description: "A list of any system specific errors that have occurred while\ - \ \nexecuting the request." - type: array - items: - type: string - x-field-uid: 1 - Response.Warning: - description: |- - A list of warnings that have occurred while executing the request. - type: object - properties: - warnings: - description: "A list of any system specific warnings that have occurred\ - \ while \nexecuting the request." - type: array - items: - type: string - x-field-uid: 1 - Config.Update: + microseconds: + description: |- + The amount of time between bursts expressed in microseconds. + A value of 0 indicates no gap between bursts. + type: number + format: double + minimum: 0 + default: 0.096 + x-field-uid: 4 + Flow.Metrics: description: |- - Request for updating specific attributes of resources in traffic generator + The optional container for configuring flow metrics. type: object properties: - choice: - type: string - x-enum: - flows: - x-field-uid: 1 + enable: + description: "Enables flow metrics.\nEnabling this option may affect the\ + \ resultant packet payload due to \nadditional instrumentation data." + type: boolean + default: false x-field-uid: 1 - enum: - - flows - flows: - $ref: '#/components/schemas/Flows.Update' + loss: + description: |- + Enables additional flow metric loss calculation. + type: boolean + default: false x-field-uid: 2 - Flows.Update: - description: |- - A container of flows with associated properties to be updated without affecting the flows current transmit state. - type: object - required: - - property_names - - flows - properties: - property_names: + timestamps: description: |- - Flow properties to be updated without affecting the transmit state. - type: array - items: - type: string - x-enum: - rate: - x-field-uid: 1 - size: - x-field-uid: 2 - enum: - - rate - - size - x-field-uid: 1 - flows: + Enables additional flow metric first and last timestamps. + type: boolean + default: false + x-field-uid: 3 + latency: description: |- - The list of configured flows for which given property will be updated. - type: array - items: - $ref: '#/components/schemas/Flow' - x-field-uid: 2 - Control.State: + Latency metrics. + $ref: '#/components/schemas/Flow.Latency.Metrics' + x-field-uid: 4 + Flow.Latency.Metrics: description: |- - Request for setting operational state of configured resources. + The optional container for per flow latency metric configuration. type: object - required: - - choice properties: - choice: + enable: + description: "True to enable latency metrics using timestamps.\n\nEnabling\ + \ this option may affect the resultant packet payload due to \nadditional\ + \ instrumentation data." + type: boolean + default: false + x-field-uid: 1 + mode: + description: "Select the type of latency measurement. The different types\ + \ of \nlatency measurements are:\n\n\nstore_forward:\nThe time interval\ + \ starting when the last bit of the frame leaves the\nsending port and\ + \ ending when the first bit of the frame is seen on\nthe receiving port\ + \ (LIFO). This is based on the RFC 1242 standard.\n\n\ncut_through:\n\ + The time interval starting when the first bit of the frame leaves\nthe\ + \ sending port and ending when the first bit of the frame is seen\non\ + \ the receiving port (FIFO). This is based on the RFC 1242 \nstandard." type: string + default: store_forward + x-field-uid: 2 x-enum: - port: + store_forward: x-field-uid: 1 - protocol: + cut_through: x-field-uid: 2 - traffic: - x-field-uid: 3 - x-field-uid: 1 enum: - - port - - protocol - - traffic - port: - $ref: '#/components/schemas/State.Port' - x-field-uid: 2 - protocol: - $ref: '#/components/schemas/State.Protocol' - x-field-uid: 3 - traffic: - $ref: '#/components/schemas/State.Traffic' - x-field-uid: 4 - State.Port: + - store_forward + - cut_through + Event: description: |- - States associated with configured ports. + The optional container for event configuration. type: object - required: - - choice properties: - choice: - type: string - x-enum: - link: - x-field-uid: 1 - capture: - x-field-uid: 2 + enable: + description: "True to enable all events. \nEnabling this option may affect\ + \ the resultant packet payload due to \nadditional instrumentation data." + type: boolean + default: false x-field-uid: 1 - enum: - - link - - capture link: - $ref: '#/components/schemas/State.Port.Link' + $ref: '#/components/schemas/Event.Link' x-field-uid: 2 - capture: - $ref: '#/components/schemas/State.Port.Capture' + rx_rate_threshold: + $ref: '#/components/schemas/Event.RxRateThreshold' x-field-uid: 3 - State.Traffic: + route_advertise_withdraw: + $ref: '#/components/schemas/Event.RouteAdvertiseWithdraw' + x-field-uid: 4 + Event.RxRateThreshold: description: |- - States associated with configured flows + The optional container for rx rate threshold event configuration. type: object - required: - - choice properties: - choice: - type: string - x-enum: - flow_transmit: - x-field-uid: 1 + enable: + description: "True to enable the rx_rate_threshold event. \nEnabling this\ + \ option may affect the resultant packet payload due to \nadditional instrumentation\ + \ data." + type: boolean + default: false x-field-uid: 1 - enum: - - flow_transmit - flow_transmit: - $ref: '#/components/schemas/State.Traffic.FlowTransmit' + threshold: + description: "True to enable notifications when the rx rate of a flow passes\ + \ above \nor below the threshold value. " + type: number + format: float + maximum: 100 + minimum: 0 + default: 95 x-field-uid: 2 - State.Protocol: + Event.Link: description: |- - States associated with protocols on configured resources. + The optional container for link up/down event configuration. type: object - required: - - choice properties: - choice: - type: string - x-enum: - all: - x-field-uid: 1 - route: - x-field-uid: 2 - lacp: - x-field-uid: 3 + enable: + description: "True to enable notifications when a link up/down event occurs. " + type: boolean + default: false x-field-uid: 1 - enum: - - all - - route - - lacp - all: - $ref: '#/components/schemas/State.Protocol.All' - x-field-uid: 2 - route: - $ref: '#/components/schemas/State.Protocol.Route' - x-field-uid: 3 - lacp: - $ref: '#/components/schemas/State.Protocol.Lacp' - x-field-uid: 4 - Link.State: + Event.RouteAdvertiseWithdraw: description: |- - Deprecated: Please use `StatePortLink` instead - - Sets the link state of configured ports. + The optional container for route advertise/withdraw event configuration. type: object - required: - - state - x-status: - status: deprecated - information: Please use `StatePortLink` instead properties: - port_names: - description: | - The names of port objects to. An empty or null list will control all port objects. - - x-constraint: - - /components/schemas/Port/properties/name + enable: + description: "True to enable notifications when a route advertise/withdraw\ + \ \nevent occurs. " + type: boolean + default: false + x-field-uid: 1 + Event.Request: + type: object + properties: + type: + description: "Constrain the events being returned by specifying event types.\n\ + If the list is empty then all event types will be returned. " + type: array + items: + type: string + example: route_withdraw + x-enum: + link_down: + x-field-uid: 1 + link_up: + x-field-uid: 2 + route_withdraw: + x-field-uid: 3 + route_advertise: + x-field-uid: 4 + flow_rx_rate_above_threshold: + x-field-uid: 5 + flow_rx_rate_below_threshold: + x-field-uid: 6 + enum: + - link_down + - link_up + - route_withdraw + - route_advertise + - flow_rx_rate_above_threshold + - flow_rx_rate_below_threshold + x-field-uid: 1 + source: + description: "Constrain the events being returned by specifying event sources.\ + \ \nIf the list is empty then all event sources will be returned. \n\n\ + x-constraint:\n- /components/schemas/Port/properties/name\n- /components/schemas/Bgp.V4RouteRange/name\n\ + - /components/schemas/Bgp.V6RouteRange/name\n" type: array items: type: string x-constraint: - /components/schemas/Port/properties/name + - /components/schemas/Bgp.V4RouteRange/name + - /components/schemas/Bgp.V6RouteRange/name + x-field-uid: 2 + Event.Subscription: + description: "A container that describes what events a system should provide\ + \ and \noptionally where to publish them. " + type: object + properties: + events: + $ref: '#/components/schemas/Event.Request' x-field-uid: 1 - state: + callbackUrl: description: |- - The link state. + Indicates where a client wants to be notified of the events set in + the events property. + If this property is empty or null then no event notifications will + be forwarded. type: string + format: uri + example: https://127.0.0.1/event/notification x-field-uid: 2 - x-enum: - up: - x-field-uid: 1 - down: - x-field-uid: 2 - enum: - - up - - down - Transmit.State: + App: description: |- - Deprecated: Please use `StateTrafficFlowTransmit` instead - - Flow transmit state. + A container for emulated TCP/UDP , application protocols, attacks and it's traffic configurations. type: object - required: - - state - x-status: - status: deprecated - information: Please use `StateTrafficFlowTransmit` instead properties: - flow_names: - description: | - The names of flows to which the transmit state will be applied to. If the list of flow_names is empty or null the state will be applied to all configured flows. - If the list is not empty any flow that is not included in the list of flow_names MUST be ignored and not included in the state change. - - x-constraint: - - /components/schemas/Flow/properties/name + tcp: + description: "The properties of TCP and its children, " type: array items: - type: string - x-constraint: - - /components/schemas/Flow/properties/name + $ref: '#/components/schemas/App.Tcp' x-field-uid: 1 - state: + http_client: + description: "The properties of HTTP client, " + type: array + items: + $ref: '#/components/schemas/App.HttpClient' + x-field-uid: 2 + http_server: + description: "The properties of HTTP server, " + type: array + items: + $ref: '#/components/schemas/App.HttpServer' + x-field-uid: 3 + ssl: description: |- - The transmit state. - If the value of the state property is 'start' then all flows defined by the 'flow_names' property will be started and the metric counters MUST be cleared prior to starting the flow(s). - If the value of the state property is 'stop' then all flows defined by the 'flow_names' property will be stopped and the metric counters MUST NOT be cleared. - If the value of the state property is 'pause' then all flows defined by the 'flow_names' property will be paused and the metric counters MUST NOT be cleared. - If the value of the state property is 'resume' then any paused flows defined by the 'flow_names' property will start transmit at the point at which they were paused. Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) MUST NOT have their metric counters cleared. + SSL configuration + type: array + items: + $ref: '#/components/schemas/App.Ssl' + x-field-uid: 4 + stateful_flows: + description: |- + Traffic configuration of endpoints. + type: array + items: + $ref: '#/components/schemas/StatefulFlow' + x-field-uid: 5 + name: + x-field-uid: 6 + description: |- + Globally unique name of an object. It also serves as the primary key for arrays of objects. type: string - x-field-uid: 2 - x-enum: - start: - x-field-uid: 1 - stop: - x-field-uid: 2 - pause: - x-field-uid: 3 - resume: - x-field-uid: 4 - enum: - - start - - stop - - pause - - resume - Capture.State: + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-unique: global + required: + - name + App.Tcp: description: |- - Deprecated: Please use `StatePortCapture` instead - - Control port capture state + The properties of TCP Configurations. type: object - required: - - state - x-status: - status: deprecated - information: Please use `StatePortCapture` instead properties: - port_names: - description: | - The names of ports to which the capture state will be applied to. If the list of port_names is empty or null the state will be applied to all configured ports. - If the list is not empty any port that is not included in the list of port_names MUST be ignored and not included in the state change. - - x-constraint: - - /components/schemas/Port/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Port/properties/name + keep_alive_time: + description: |- + If a link has no activity on it for the time specified, keep-alive probes are sent to determine if the link is still up. The Keep-alive Time value is expressed in seconds. + type: number + default: 7200 x-field-uid: 1 - state: + keep_alive_probes: description: |- - The capture state. - type: string + Number of keep-alive probes sent out before determining that a link is down. + type: number + default: 9 x-field-uid: 2 - x-enum: - start: - x-field-uid: 1 - stop: - x-field-uid: 2 - enum: - - start - - stop - Route.State: + keep_alive_interval: + description: |- + The number of seconds between repeated keep-alive probes. + type: number + default: 75 + x-field-uid: 3 + receive_buffer_size: + description: |- + The TCP read buffer size. + type: integer + default: 4096 + x-field-uid: 4 + transmit_buffer_size: + description: |- + The TCP write buffer size. + type: integer + default: 4096 + x-field-uid: 5 + name: + x-field-uid: 6 + description: |- + Globally unique name of an object. It also serves as the primary key for arrays of objects. + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-unique: global + App.HttpClient: description: |- - Deprecated: Please use `StateProtocolRoute` instead - - Sets the device route state + Configurations of one or more HTTP client. type: object - required: - - state - x-status: - status: deprecated - information: Please use `StateProtocolRoute` instead properties: - names: + client: + $ref: '#/components/schemas/HttpClient.Client' + x-field-uid: 1 + HttpClient.Client: + description: "One or more HTTP Client configurations and its HTTP methods configs. " + type: object + properties: + transport_name: description: | - The names of device route objects to control. If no names are specified then all route objects that match the x-constraint will be affected. + Transport interface that can be attached to TCP. In the same apps or different apps container. x-constraint: - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name - type: array - items: - type: string + - /components/schemas/App.Tcp/properties/name + type: string x-constraint: - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name + - /components/schemas/App.Tcp/properties/name x-field-uid: 1 - state: + http_version: description: |- - Route specific states + HTTP Version type: string x-field-uid: 2 x-enum: - withdraw: + v10: x-field-uid: 1 - advertise: + v11: x-field-uid: 2 + v20: + x-field-uid: 3 + default: v10 enum: - - withdraw - - advertise - Protocol.State: - description: |- - Deprecated: Please use `StateProtocolAll` instead - - Sets all configured protocols to `start` or `stop` state. Setting protocol state to `start` shall be a no-op if preceding `set_config` API call was made with `config.options.protocol_options.auto_start_all` set to `true` or if all the configured protocols are already started. - type: object - required: - - state - x-status: - status: deprecated - information: Please use `StateProtocolAll` instead - properties: - state: + - v10 + - v11 + - v20 + cookie_jar_size: description: |- - Protocol specific states + cookie_jar_size the number of cookies that will be saved for each client. The maximum value of this is 300. (only if enable_cookie_support is enabled) + type: integer + default: 10 + x-field-uid: 3 + cookie_reject_probability: + description: |- + cookie_reject_probability indicates the probability, from 0 or 1, that a client will reject a request for a cookie(s) contents from the server. (only if enable_cookie_support is enabled) + type: boolean + default: 0 + x-field-uid: 4 + enable_cookie_support: + description: |- + The client will support cookie retention, as indicated in the cookie_jar_size and cookie_reject_probability + type: boolean + default: false + x-field-uid: 5 + command_timeout: + description: |- + HTTP command timeout timer in seconds + type: number + default: 600 + x-field-uid: 6 + methods: + description: "The HTTP methods such as GET, POST and its properties. " + type: array + items: + $ref: '#/components/schemas/Http.Method' + x-field-uid: 10 + name: + x-field-uid: 11 + description: |- + Globally unique name of an object. It also serves as the primary key for arrays of objects. type: string - x-field-uid: 1 - x-enum: - start: - x-field-uid: 1 - stop: - x-field-uid: 2 - enum: - - start - - stop - Device.State: - description: |- - Deprecated: Please use `State.Protocol` instead - - Sets attributes for the requested state/actions to be performed on device(s) + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-unique: global + Http.Method: type: object - x-status: - status: deprecated - information: Please use `State.Protocol` instead properties: choice: type: string + default: get x-field-uid: 1 x-enum: - lacp_member_state: + get: x-field-uid: 1 + post: + x-field-uid: 2 enum: - - lacp_member_state - lacp_member_state: - $ref: '#/components/schemas/LacpMember.State' + - get + - post + get: x-field-uid: 2 - State.Port.Link: + $ref: '#/components/schemas/Method.Get' + post: + x-field-uid: 3 + $ref: '#/components/schemas/Method.Post' + Method.Get: description: |- - Sets the link of configured ports. + A GET operation of HTTP client. Retrieves the page from the HTTP Server. type: object required: - - state + - server + - page properties: - port_names: - description: | - The names of target ports. An empty or null list will target all ports. - - x-constraint: - - /components/schemas/Port/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Port/properties/name + server: + description: |- + Server name/IP address + type: string x-field-uid: 1 - state: + page: description: |- - The link state. + The page url/name to perform HTTP GET operation. type: string x-field-uid: 2 - x-enum: - up: - x-field-uid: 1 - down: - x-field-uid: 2 - enum: - - up - - down - State.Port.Capture: + Method.Post: description: |- - Sets the capture state of configured ports + A POST operation of HTTP client. To post the data on HTTP Server. type: object required: - - state + - server + - page properties: - port_names: - description: | - The names of ports to which the capture state will be applied to. If the list of port_names is empty or null the state will be applied to all configured ports. - If the list is not empty any port that is not included in the list of port_names MUST be ignored and not included in the state change. - - x-constraint: - - /components/schemas/Port/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Port/properties/name + server: + description: |- + Server name/IP address + type: string x-field-uid: 1 - state: + page: description: |- - The capture state. + The page url/name to perform HTTP POST operation. type: string x-field-uid: 2 - x-enum: - start: - x-field-uid: 1 - stop: - x-field-uid: 2 - enum: - - start - - stop - State.Traffic.FlowTransmit: + App.HttpServer: description: |- - Provides state control of flow transmission. + Configurations of one or more HTTP server. type: object properties: - flow_names: + server: + $ref: '#/components/schemas/HttpServer.Server' + x-field-uid: 1 + HttpServer.Server: + description: "One or more HTTP Server configurations. " + type: object + properties: + transport_name: description: | - The names of flows to which the transmit state will be applied to. If the list of flow_names is empty or null the state will be applied to all configured flows. - If the list is not empty any flow that is not included in the list of flow_names MUST be ignored and not included in the state change. + Transport interface that can be attached to TCP. In the same apps or different apps container. x-constraint: - - /components/schemas/Flow/properties/name - type: array - items: - type: string + - /components/schemas/App.Tcp/properties/name + type: string x-constraint: - - /components/schemas/Flow/properties/name + - /components/schemas/App.Tcp/properties/name x-field-uid: 1 - state: + http_version: description: |- - The transmit state. - If the value of the state property is 'start' then all flows defined by the 'flow_names' property will be started and the metric counters MUST be cleared prior to starting the flow(s). - If the value of the state property is 'stop' then all flows defined by the 'flow_names' property will be stopped and the metric counters MUST NOT be cleared. - If the value of the state property is 'pause' then all flows defined by the 'flow_names' property will be paused and the metric counters MUST NOT be cleared. - If the value of the state property is 'resume' then any paused flows defined by the 'flow_names' property will start transmit at the point at which they were paused. Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) MUST NOT have their metric counters cleared. + HTTP Version type: string x-field-uid: 2 x-enum: - start: + v10: x-field-uid: 1 - stop: + v11: x-field-uid: 2 - pause: + v20: x-field-uid: 3 - resume: - x-field-uid: 4 + default: v10 enum: - - start - - stop - - pause - - resume - State.Protocol.All: + - v10 + - v11 + - v20 + http_port: + description: |- + The port number to which the HTTP server will respond to non-SSL requests. + type: integer + default: 80 + x-field-uid: 3 + request_timeout: + description: |- + The number of seconds that the server will wait for input on an open connection before closing the session with a 408 error. + type: integer + default: 300 + x-field-uid: 4 + App.Ssl: description: |- - Sets all configured protocols to `start` or `stop` state. - Setting protocol state to `start` shall be a no-op if preceding `set_config` API call was made with `config.options.protocol_options.auto_start_all` set to `true` or if all the configured protocols are already started. + SSL configuration . type: object - required: - - state properties: - state: + enable: description: |- - Protocol states - type: string + Enable SSL for HTTP + type: boolean + default: false x-field-uid: 1 - x-enum: - start: - x-field-uid: 1 - stop: - x-field-uid: 2 - enum: - - start - - stop - State.Protocol.Route: - description: |- - Sets the state of configured routes + StatefulFlow: + description: "Statefull_flows configure traffic for emulated protocols which\ + \ is configured in apps. " type: object - required: - - state properties: - names: - description: | - The names of device route objects to control. If no names are specified then all route objects that match the x-constraint will be affected. - - x-constraint: - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Bgp.V4RouteRange/properties/name - - /components/schemas/Bgp.V6RouteRange/properties/name - - /components/schemas/Isis.V4RouteRange/properties/name - - /components/schemas/Isis.V6RouteRange/properties/name + client: + $ref: '#/components/schemas/StatefulFlow.Client' x-field-uid: 1 - state: - description: |- - Route states - type: string + server: + $ref: '#/components/schemas/StatefulFlow.Server' x-field-uid: 2 - x-enum: - withdraw: - x-field-uid: 1 - advertise: - x-field-uid: 2 - enum: - - withdraw - - advertise - State.Protocol.Lacp: + objectives: + $ref: '#/components/schemas/StatefulFlow.Objective' + x-field-uid: 3 + StatefulFlow.Client: description: |- - Sets state of configured LACP + Client traffic configs. type: object - required: - - choice properties: - choice: - type: string - x-enum: - admin: - x-field-uid: 1 + endpoints: + description: |- + EndPoint configuration for one or more emulated apps. + type: array + items: + $ref: '#/components/schemas/Endpoints.Client' x-field-uid: 1 - enum: - - admin - admin: - $ref: '#/components/schemas/State.Protocol.Lacp.Admin' - x-field-uid: 2 - State.Protocol.Lacp.Admin: - description: |- - Sets admin state of LACP configured on LAG members - properties: - lag_member_names: + protocol: description: | - The names of LAG members (ports) for which the state has to be applied. An empty or null list will control all LAG members. + Protocol to use for test, such as HTTP, TCP x-constraint: - - /components/schemas/Port/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Port/properties/name - x-field-uid: 1 - state: - description: |- - The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member ports. - type: string - x-field-uid: 2 - x-enum: - up: - x-field-uid: 1 - down: - x-field-uid: 2 - enum: - - up - - down - LacpMember.State: + - /components/schemas/App.Tcp/properties/name + - /components/schemas/App.Http/properties/name + type: string + x-constraint: + - /components/schemas/App.Tcp/properties/name + - /components/schemas/App.Http/properties/name + x-field-uid: 2 + Endpoints.Client: description: |- - Deprecated: Please use `StateProtocolLacpAdmin` instead - - Set LACP state for specified LAG Member Port(s). + Endpoint configs for Client. type: object - required: - - state - x-status: - status: deprecated - information: Please use `StateProtocolLacpAdmin` instead properties: - lag_member_port_names: + ip_interface_name: description: | - The names of LAG members (ports) for which the state has to be applied. An empty or null list will control all LAG members. + IPv4/v6 interface name, which is configured in devices. x-constraint: - - /components/schemas/Port/properties/name - type: array - items: - type: string + - /components/schemas/Device.Ipv4Base/properties/name + - /components/schemas/Device.Ipv6Base/properties/name + type: string x-constraint: - - /components/schemas/Port/properties/name + - /components/schemas/Device.Ipv4Base/properties/name + - /components/schemas/Device.Ipv6Base/properties/name x-field-uid: 1 - state: - description: |- - The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member ports. - type: string + ports: x-field-uid: 2 - x-enum: - up: - x-field-uid: 1 - down: - x-field-uid: 2 - enum: - - up - - down - Control.Action: + $ref: '#/components/schemas/Pattern.Endpoints.Client.Ports' + Endpoints.Server: description: |- - Request for triggering action against configured resources. + Endpoint configs for Server. + type: object + properties: + dest: + $ref: '#/components/schemas/Endpoints.Dest' + x-field-uid: 1 + ports: + x-field-uid: 2 + $ref: '#/components/schemas/Pattern.Endpoints.Server.Ports' + Endpoints.Dest: + description: |- + Endpoint destination config for server. type: object - required: - - choice properties: choice: type: string + default: name + x-field-uid: 1 x-enum: - protocol: + name: x-field-uid: 1 - x-field-uid: 1 + ipv4_address: + x-field-uid: 2 + ipv6_address: + x-field-uid: 3 enum: - - protocol - protocol: - $ref: '#/components/schemas/Action.Protocol' + - name + - ipv4_address + - ipv6_address + name: + description: | + IPv4/v6 interface name + + x-constraint: + - /components/schemas/Device.Ipv4Base/properties/name + - /components/schemas/Device.Ipv6Base/properties/name + type: string + x-constraint: + - /components/schemas/Device.Ipv4Base/properties/name + - /components/schemas/Device.Ipv6Base/properties/name x-field-uid: 2 - Control.Action.Response: + ipv4_address: + description: |- + IPv4 address of the server with prefix length of 32. + type: string + x-field-uid: 3 + format: ipv4 + ipv6_address: + description: |- + IPv6 address of the server with prefix length of 128. + type: string + x-field-uid: 4 + format: ipv6 + StatefulFlow.Server: description: |- - Response for action triggered against configured resources along with warnings. + Traffic configuration for server(s). type: object properties: - warnings: + endpoints: description: |- - List of warnings generated while triggering specified action + EndPoint configuration for one or more emulated apps. type: array items: - type: string - x-field-uid: 1 - response: - $ref: '#/components/schemas/Action.Response' - x-field-uid: 2 - Action.Response: - description: |- - Response for action triggered against configured resources. - type: object - required: - - choice - properties: - choice: - type: string - x-enum: - protocol: - x-field-uid: 1 + $ref: '#/components/schemas/Endpoints.Server' x-field-uid: 1 - enum: - - protocol protocol: - $ref: '#/components/schemas/Action.Response.Protocol' + description: | + Protocol to use for test, such as HTTP, TCP + + x-constraint: + - /components/schemas/App.Tcp/properties/name + - /components/schemas/App.Http/properties/name + type: string + x-constraint: + - /components/schemas/App.Tcp/properties/name + - /components/schemas/App.Http/properties/name x-field-uid: 2 - Action.Protocol: + StatefulFlow.Objective: description: |- - Actions associated with protocols on configured resources. + objective config such simulated user, thoughput, conncurrent connections. type: object - required: - - choice properties: choice: type: string + default: throughput + x-field-uid: 1 x-enum: - ipv4: + simulated_user: x-field-uid: 1 - ipv6: + throughput: x-field-uid: 2 - bgp: + concurrent_connections: x-field-uid: 3 - x-field-uid: 1 enum: - - ipv4 - - ipv6 - - bgp - ipv4: - $ref: '#/components/schemas/Action.Protocol.Ipv4' + - simulated_user + - throughput + - concurrent_connections + simulated_user: x-field-uid: 2 - ipv6: - $ref: '#/components/schemas/Action.Protocol.Ipv6' + $ref: '#/components/schemas/Objective.Simulated.User' + throughput: x-field-uid: 3 - bgp: - $ref: '#/components/schemas/Action.Protocol.Bgp' + $ref: '#/components/schemas/Objective.Throughput' + concurrent_connections: x-field-uid: 4 - Action.Response.Protocol: + $ref: '#/components/schemas/Objective.Connection.Conncurrent' + Objective.Simulated.User: description: |- - Response for actions associated with protocols on configured resources. + simulated user traffic type: object required: - - choice + - value properties: - choice: + value: + description: |- + Number of simulated user. + type: integer + x-field-uid: 1 + ramp_up_type: + description: |- + Ramp up type to defines the type of user execution profiles during the ramp_up_time, . type: string + x-field-uid: 2 x-enum: - ipv4: + users_intervals: x-field-uid: 1 - ipv6: + max_pending_user: x-field-uid: 2 - x-field-uid: 1 + immediate: + x-field-uid: 3 + default: users_intervals enum: - - ipv4 - - ipv6 - ipv4: - $ref: '#/components/schemas/Action.Response.Protocol.Ipv4' - x-field-uid: 2 - ipv6: - $ref: '#/components/schemas/Action.Response.Protocol.Ipv6' + - users_intervals + - max_pending_user + - immediate + ramp_up_value: + description: |- + Value applied to ramp_up_type to either bring up users at a certain rate. + type: integer x-field-uid: 3 - Action.Protocol.Ipv4: - description: |- - Actions associated with IPv4 on configured resources. + sustain_time: + description: |- + Amount of time when all users are up and performing the central test objectives, such as retrieving or serving pages. + type: integer + x-field-uid: 4 + ramp_down_time: + description: |- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: integer + x-field-uid: 5 + Objective.Throughput: + description: "Throughput traffic " type: object - required: - - choice properties: choice: + description: |- + The throughput test value or max throughput . type: string + default: max_throughput + x-field-uid: 1 x-enum: - ping: + value: x-field-uid: 1 - x-field-uid: 1 + max_throughput: + x-field-uid: 2 enum: - - ping - ping: - $ref: '#/components/schemas/Action.Protocol.Ipv4.Ping' + - value + - max_throughput + value: + type: integer x-field-uid: 2 - Action.Response.Protocol.Ipv4: + max_throughput: + type: boolean + default: 0 + x-field-uid: 3 + sustain_time: + description: |- + Amount of seconds when all users are up and performing the central test objectives, such as retrieving or serving pages. + type: number + x-field-uid: 4 + ramp_down_time: + description: |- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: number + x-field-uid: 5 + Objective.Connection.Conncurrent: description: |- - Response for actions associated with IPv4 on configured resources. + Conncurrent connections objectives type: object required: - - choice + - value properties: - choice: - type: string - x-enum: - ping: - x-field-uid: 1 + value: + description: |- + Throughput value. + type: integer x-field-uid: 1 - enum: - - ping - ping: - $ref: '#/components/schemas/Action.Response.Protocol.Ipv4.Ping' + sustain_time: + description: |- + Amount of seconds when all users are up and performing the central test objectives, such as retrieving or serving pages. + type: number x-field-uid: 2 - Action.Protocol.Ipv4.Ping: + ramp_down_time: + description: |- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: number + x-field-uid: 3 + ramp_down_value: + description: |- + Amount of seconds used for closing any connections that are still open after all transactions are complete. + type: number + x-field-uid: 4 + Response.Error: description: |- - Request for initiating ping between multiple source and destination pairs. + A list of errors that may have occurred while executing the request. type: object properties: - requests: - description: |- - List of IPv4 ping requests. + errors: + description: "A list of any system specific errors that have occurred while\ + \ \nexecuting the request." type: array items: - $ref: '#/components/schemas/Action.Protocol.Ipv4.PingRequest' - x-field-uid: 1 - Action.Protocol.Ipv4.PingRequest: - description: |- - Under Review: Most ping request parameters are still TBD. - - Request for initiating ping between a single source and destination pair. - For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response to either succeed or time out. The API wait timeout for each request shall be 300ms. - type: object - x-status: - status: under_review - information: Most ping request parameters are still TBD. - properties: - src_name: - description: | - Name of source IPv4 interface to be used. - - x-constraint: - - /components/schemas/Device.Ipv4/properties/name - type: string - x-constraint: - - /components/schemas/Device.Ipv4/properties/name + type: string x-field-uid: 1 - dst_ip: - description: |- - Destination IPv4 address to ping. - type: string - format: ipv4 - x-field-uid: 2 - Action.Response.Protocol.Ipv4.Ping: + Response.Warning: description: |- - Response for ping initiated between multiple source and destination pairs. + A list of warnings that have occurred while executing the request. type: object properties: - responses: - description: |- - List of responses for IPv4 ping responses. + warnings: + description: "A list of any system specific warnings that have occurred\ + \ while \nexecuting the request." type: array items: - $ref: '#/components/schemas/Action.Response.Protocol.Ipv4.PingResponse' + type: string x-field-uid: 1 - Action.Response.Protocol.Ipv4.PingResponse: + Link.State: description: |- - Response for ping initiated between a single source and destination pair. + Port link state. type: object required: - - src_name - - dst_ip - - result + - state properties: - src_name: + port_names: description: | - Name of source IPv4 interface used for ping. + The names of port objects to. An empty or null list will control all port objects. x-constraint: - - /components/schemas/Device.Ipv4/properties/name - type: string + - /components/schemas/Port/properties/name + type: array + items: + type: string x-constraint: - - /components/schemas/Device.Ipv4/properties/name + - /components/schemas/Port/properties/name x-field-uid: 1 - dst_ip: + state: description: |- - Destination IPv4 address used for ping. + The link state. type: string - format: ipv4 x-field-uid: 2 - result: - description: |- - Result of the ping request. - type: string - x-field-uid: 3 x-enum: - succeeded: + up: x-field-uid: 1 - failed: + down: x-field-uid: 2 enum: - - succeeded - - failed - Action.Protocol.Ipv6: + - up + - down + Transmit.State: description: |- - Actions associated with IPv6 on configured resources. + Flow transmit state. type: object required: - - choice + - state properties: - choice: - type: string - x-enum: - ping: - x-field-uid: 1 + flow_names: + description: | + The names of flows to which the transmit state will be applied to. If the list of flow_names is empty or null the state will be applied to all configured flows. + If the list is not empty any flow that is not included in the list of flow_names MUST be ignored and not included in the state change. + + x-constraint: + - /components/schemas/Flow/properties/name + type: array + items: + type: string + x-constraint: + - /components/schemas/Flow/properties/name x-field-uid: 1 - enum: - - ping - ping: - $ref: '#/components/schemas/Action.Protocol.Ipv6.Ping' - x-field-uid: 2 - Action.Response.Protocol.Ipv6: - description: |- - Response for actions associated with IPv6 on configured resources. - type: object - required: - - choice - properties: - choice: + state: + description: |- + The transmit state. + If the value of the state property is 'start' then all flows defined by the 'flow_names' property will be started and the metric counters MUST be cleared prior to starting the flow(s). + If the value of the state property is 'stop' then all flows defined by the 'flow_names' property will be stopped and the metric counters MUST NOT be cleared. + If the value of the state property is 'pause' then all flows defined by the 'flow_names' property will be paused and the metric counters MUST NOT be cleared. + If the value of the state property is 'resume' then any paused flows defined by the 'flow_names' property will start transmit at the point at which they were paused. Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) MUST NOT have their metric counters cleared. type: string + x-field-uid: 2 x-enum: - ping: + start: x-field-uid: 1 - x-field-uid: 1 - enum: - - ping - ping: - $ref: '#/components/schemas/Action.Response.Protocol.Ipv6.Ping' - x-field-uid: 2 - Action.Protocol.Ipv6.Ping: - description: |- - Request for initiating ping between multiple source and destination pairs. - type: object - properties: - requests: - description: |- - List of IPv6 ping requests. - type: array - items: - $ref: '#/components/schemas/Action.Protocol.Ipv6.PingRequest' - x-field-uid: 1 - Action.Protocol.Ipv6.PingRequest: + stop: + x-field-uid: 2 + pause: + x-field-uid: 3 + resume: + x-field-uid: 4 + enum: + - start + - stop + - pause + - resume + Capture.State: description: |- - Under Review: Most ping request parameters are still TBD. - - Request for initiating ping between a single source and destination pair. - For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response to either succeed or time out. The API wait timeout for each request shall be 300ms. + Control port capture state type: object - x-status: - status: under_review - information: Most ping request parameters are still TBD. + required: + - state properties: - src_name: + port_names: description: | - Name of source IPv6 interface to be used. + The names of ports to which the capture state will be applied to. If the list of port_names is empty or null the state will be applied to all configured ports. + If the list is not empty any port that is not included in the list of port_names MUST be ignored and not included in the state change. x-constraint: - - /components/schemas/Device.Ipv6/properties/name - type: string + - /components/schemas/Port/properties/name + type: array + items: + type: string x-constraint: - - /components/schemas/Device.Ipv6/properties/name + - /components/schemas/Port/properties/name x-field-uid: 1 - dst_ip: + state: description: |- - Destination IPv6 address to ping. + The capture state. type: string - format: ipv6 x-field-uid: 2 - Action.Response.Protocol.Ipv6.Ping: + x-enum: + start: + x-field-uid: 1 + stop: + x-field-uid: 2 + enum: + - start + - stop + Flows.Update: description: |- - Response for ping initiated between multiple source and destination pairs. + A container of flows with associated properties to be updated without affecting the flows current transmit state. type: object + required: + - property_names + - flows properties: - responses: + property_names: description: |- - List of responses for IPv6 ping responses. + Flow properties to be updated without affecting the transmit state. type: array items: - $ref: '#/components/schemas/Action.Response.Protocol.Ipv6.PingResponse' + type: string + x-enum: + rate: + x-field-uid: 1 + size: + x-field-uid: 2 + enum: + - rate + - size x-field-uid: 1 - Action.Response.Protocol.Ipv6.PingResponse: + flows: + description: |- + The list of configured flows for which given property will be updated. + type: array + items: + $ref: '#/components/schemas/Flow' + x-field-uid: 2 + Route.State: description: |- - Response for ping initiated between a single source and destination pair. + Sets the device route state type: object required: - - src_name - - dst_ip - - result + - state properties: - src_name: + names: description: | - Name of source IPv6 interface used for ping. + The names of device route objects to control. If no names are specified then all route objects that match the x-constraint will be affected. x-constraint: - - /components/schemas/Device.Ipv6/properties/name - type: string + - /components/schemas/Bgp.V4RouteRange/properties/name + - /components/schemas/Bgp.V6RouteRange/properties/name + - /components/schemas/Isis.V4RouteRange/properties/name + - /components/schemas/Isis.V6RouteRange/properties/name + type: array + items: + type: string x-constraint: - - /components/schemas/Device.Ipv6/properties/name + - /components/schemas/Bgp.V4RouteRange/properties/name + - /components/schemas/Bgp.V6RouteRange/properties/name + - /components/schemas/Isis.V4RouteRange/properties/name + - /components/schemas/Isis.V6RouteRange/properties/name x-field-uid: 1 - dst_ip: + state: description: |- - Destination IPv6 address used for ping. + Route specific states type: string - format: ipv6 x-field-uid: 2 - result: - description: |- - Result of the ping request. - type: string - x-field-uid: 3 x-enum: - succeeded: + withdraw: x-field-uid: 1 - failed: + advertise: x-field-uid: 2 enum: - - succeeded - - failed - Action.Protocol.Bgp: + - withdraw + - advertise + Ping.Request: description: |- - Actions associated with BGP on configured resources. - type: object - required: - - choice - properties: - choice: - type: string - x-enum: - notification: - x-field-uid: 1 - initiate_graceful_restart: - x-field-uid: 2 - x-field-uid: 1 - enum: - - notification - - initiate_graceful_restart - notification: - $ref: '#/components/schemas/Action.Protocol.Bgp.Notification' - x-field-uid: 2 - initiate_graceful_restart: - $ref: '#/components/schemas/Action.Protocol.Bgp.InitiateGracefulRestart' - x-field-uid: 3 - Action.Protocol.Bgp.Notification: - description: "A NOTIFICATION message is sent when an error is detected with\ - \ the BGP session, such as hold timer expiring, misconfigured AS number or\ - \ a BGP session reset is requested. This causes the BGP connection to close.\ - \ Send explicit NOTIFICATIONs for list of specified BGP peers. If a user\ - \ wants to send custom Error Code and Error Subcode the custom object should\ - \ be configured. A user can send IANA defined BGP NOTIFICATIONs according\ - \ to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. " + Ping request details type: object properties: - names: - description: | - The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION will be sent to all configured BGP peers. - - x-constraint: - - /components/schemas/Device.Bgp/properties/name + endpoints: + description: |- + Array of ping requests type: array items: - type: string - x-constraint: - - /components/schemas/Device.Bgp/properties/name + $ref: '#/components/schemas/Ping' x-field-uid: 1 - choice: + Protocol.State: + description: |- + Sets all configured protocols to `start` or `stop` state. + type: object + required: + - state + properties: + state: description: |- - Each BGP NOTIFICATION message includes an Error Code field indicating what type of problem occurred. For certain Error Codes, an Error Subcode field provides additional details about the specific nature of the problem. The choice value will provide the Error Code used in NOTIFICATION message. The Subcode can be set for each of the corresponding errors except for Hold Timer Expired error and BGP Finite State Machine error. In both of these cases Subcode 0 will be sent. If a user wants to use non zero Sub Code then custom choice can be used. + Protocol specific states type: string - x-field-uid: 2 - default: cease + x-field-uid: 1 x-enum: - cease: + start: x-field-uid: 1 - message_header_error: + stop: x-field-uid: 2 - open_message_error: - x-field-uid: 3 - update_message_error: - x-field-uid: 4 - hold_timer_expired: - x-field-uid: 5 - finite_state_machine_error: - x-field-uid: 6 - custom: - x-field-uid: 7 enum: - - cease - - message_header_error - - open_message_error - - update_message_error - - hold_timer_expired - - finite_state_machine_error - - custom - cease: - $ref: '#/components/schemas/Device.Bgp.CeaseError' - x-field-uid: 3 - message_header_error: - $ref: '#/components/schemas/Device.Bgp.MessageHeaderError' - x-field-uid: 4 - open_message_error: - $ref: '#/components/schemas/Device.Bgp.OpenMessageError' - x-field-uid: 5 - update_message_error: - $ref: '#/components/schemas/Device.Bgp.UpdateMessageError' - x-field-uid: 6 - hold_timer_expired: - $ref: '#/components/schemas/Device.Bgp.HoldTimerExpired' - x-field-uid: 7 - finite_state_machine_error: - $ref: '#/components/schemas/Device.Bgp.FiniteStateMachineError' - x-field-uid: 8 - custom: - $ref: '#/components/schemas/Device.Bgp.CustomError' - x-field-uid: 9 - Action.Protocol.Bgp.InitiateGracefulRestart: + - start + - stop + Device.State: description: |- - Initiates BGP Graceful Restart process for the selected BGP peers. If no name is specified then Graceful Restart will be sent to all configured BGP peers. + Sets attributes for the requested state/actions to be performed on device(s) type: object properties: - peer_names: - description: | - The names of device BGP peers objects to control. - - x-constraint: - - /components/schemas/Device.Bgp/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Device.Bgp/properties/name + choice: + type: string x-field-uid: 1 - restart_delay: - description: "Duration (in seconds) after which selected BGP peers will\ - \ initiate \nGraceful restart by sending the Open Message with Restart\ - \ State bit set in the Graceful Restart capability." - type: integer - format: uint32 - maximum: 3600 - default: 30 + x-enum: + lacp_member_state: + x-field-uid: 1 + enum: + - lacp_member_state + lacp_member_state: + $ref: '#/components/schemas/LacpMember.State' x-field-uid: 2 Ping: type: object @@ -9449,18 +7867,6 @@ components: type: string format: ipv6 x-field-uid: 2 - Ping.Request: - description: |- - Ping request details - type: object - properties: - endpoints: - description: |- - Array of ping requests - type: array - items: - $ref: '#/components/schemas/Ping' - x-field-uid: 1 Ping.Response: description: |- A container for ping responses. @@ -9505,9 +7911,41 @@ components: enum: - success - failure + LacpMember.State: + description: |- + Set LACP state for specified LAG Member Port(s). + type: object + required: + - state + properties: + lag_member_port_names: + description: | + The names of LAG members (ports) for which the state has to be applied. An empty or null list will control all LAG members. + + x-constraint: + - /components/schemas/Port/properties/name + type: array + items: + type: string + x-constraint: + - /components/schemas/Port/properties/name + x-field-uid: 1 + state: + description: |- + The LACP Member admin state. 'up' will start transmission of LACPDUs on selected member ports. 'down' will send a LACPDU with 'sync' flag unset and then stop transmission of LACPDUs on selected member ports. + type: string + x-field-uid: 2 + x-enum: + up: + x-field-uid: 1 + down: + x-field-uid: 2 + enum: + - up + - down Metrics.Request: description: |- - Request to traffic generator for metrics of choice. + Request to traffic generator for metrics of choice type: object properties: choice: @@ -9527,12 +7965,8 @@ components: x-field-uid: 5 lag: x-field-uid: 6 - lacp: + lacp_lag_member: x-field-uid: 7 - lldp: - x-field-uid: 8 - rsvp: - x-field-uid: 9 enum: - port - flow @@ -9540,9 +7974,7 @@ components: - bgpv6 - isis - lag - - lacp - - lldp - - rsvp + - lacp_lag_member port: $ref: '#/components/schemas/Port.Metrics.Request' x-field-uid: 2 @@ -9561,18 +7993,12 @@ components: lag: $ref: '#/components/schemas/Lag.Metrics.Request' x-field-uid: 7 - lacp: - $ref: '#/components/schemas/Lacp.Metrics.Request' + lacp_lag_member: + $ref: '#/components/schemas/LacpLagMember.Metrics.Request' x-field-uid: 8 - lldp: - $ref: '#/components/schemas/Lldp.Metrics.Request' - x-field-uid: 9 - rsvp: - $ref: '#/components/schemas/Rsvp.Metrics.Request' - x-field-uid: 10 Metrics.Response: description: |- - Response containing chosen traffic generator metrics. + Response containing chosen traffic generator metrics type: object properties: choice: @@ -9592,12 +8018,8 @@ components: x-field-uid: 5 lag_metrics: x-field-uid: 6 - lacp_metrics: + lacp_lag_member_metrics: x-field-uid: 7 - lldp_metrics: - x-field-uid: 8 - rsvp_metrics: - x-field-uid: 9 enum: - flow_metrics - port_metrics @@ -9605,9 +8027,7 @@ components: - bgpv6_metrics - isis_metrics - lag_metrics - - lacp_metrics - - lldp_metrics - - rsvp_metrics + - lacp_lag_member_metrics port_metrics: type: array items: @@ -9638,21 +8058,11 @@ components: items: $ref: '#/components/schemas/Lag.Metric' x-field-uid: 7 - lacp_metrics: + lacp_lag_member_metrics: type: array items: - $ref: '#/components/schemas/Lacp.Metric' + $ref: '#/components/schemas/LacpLagMember.Metric' x-field-uid: 8 - lldp_metrics: - type: array - items: - $ref: '#/components/schemas/Lldp.Metric' - x-field-uid: 9 - rsvp_metrics: - type: array - items: - $ref: '#/components/schemas/Rsvp.Metric' - x-field-uid: 10 Port.Metrics.Request: description: |- The port result request to the traffic generator @@ -9807,19 +8217,6 @@ components: The current rate of bytes received type: number x-field-uid: 12 - transmit: - description: |- - The transmit state of the flow. - type: string - x-field-uid: 13 - x-enum: - started: - x-field-uid: 1 - stopped: - x-field-uid: 2 - enum: - - started - - stopped Flow.Metrics.Request: description: |- The container for a flow metric request. @@ -10116,8 +8513,6 @@ components: x-field-uid: 13 notifications_received: x-field-uid: 14 - fsm_state: - x-field-uid: 15 enum: - session_state - session_flap_count @@ -10133,7 +8528,6 @@ components: - keepalives_received - notifications_sent - notifications_received - - fsm_state x-field-uid: 2 Bgpv4.Metric: description: |- @@ -10222,32 +8616,7 @@ components: description: |- Number of Notification messages received. type: integer - x-field-uid: 15 - fsm_state: - description: |- - BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm and Established. In all the states except Established the BGP session is down. Idle refers to the Idle state of the FSM. Connect refers to the state where the session is waiting for the underlying transport session to be established. Active refers to the state where the session is awaiting for a connection from the remote peer. OpenSent refers to the state where the session is in the process of being established. The local system has sent an OPEN message. OpenConfirm refers to the state where the session is in the process of being established. The local system has sent and received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from remote peer. Established refers to the state where the BGP session with the peer is established. - type: string - x-field-uid: 16 - x-enum: - idle: - x-field-uid: 1 - connect: - x-field-uid: 2 - active: - x-field-uid: 3 - opensent: - x-field-uid: 4 - openconfirm: - x-field-uid: 5 - established: - x-field-uid: 6 - enum: - - idle - - connect - - active - - opensent - - openconfirm - - established + x-field-uid: 15 Bgpv6.Metrics.Request: description: |- The request to retrieve BGPv6 per peer metrics/statistics. @@ -10300,8 +8669,6 @@ components: x-field-uid: 13 notifications_received: x-field-uid: 14 - fsm_state: - x-field-uid: 15 enum: - session_state - session_flap_count @@ -10317,7 +8684,6 @@ components: - keepalives_received - notifications_sent - notifications_received - - fsm_state x-field-uid: 2 Bgpv6.Metric: description: |- @@ -10407,31 +8773,6 @@ components: Number of Notification messages received. type: integer x-field-uid: 15 - fsm_state: - description: |- - BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm and Established. In all the states except Established the BGP session is down. Idle refers to the Idle state of the FSM. Connect refers to the state where the session is waiting for the underlying transport session to be established. Active refers to the state where the session is awaiting for a connection from the remote peer. OpenSent refers to the state where the session is in the process of being established. The local system has sent an OPEN message. OpenConfirm refers to the state where the session is in the process of being established. The local system has sent and received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from remote peer. Established refers to the state where the BGP session with the peer is established. - type: string - x-field-uid: 16 - x-enum: - idle: - x-field-uid: 1 - connect: - x-field-uid: 2 - active: - x-field-uid: 3 - opensent: - x-field-uid: 4 - openconfirm: - x-field-uid: 5 - established: - x-field-uid: 6 - enum: - - idle - - connect - - active - - opensent - - openconfirm - - established Isis.Metrics.Request: description: |- The request to retrieve ISIS per Router metrics/statistics. @@ -10700,7 +9041,7 @@ components: items: type: string x-enum: - oper_status: + oper_states: x-field-uid: 1 member_ports_up: x-field-uid: 2 @@ -10721,7 +9062,7 @@ components: bytes_rx_rate: x-field-uid: 10 enum: - - oper_status + - oper_states - member_ports_up - frames_tx - frames_rx @@ -10811,7 +9152,7 @@ components: The current rate of bytes received. type: number x-field-uid: 11 - Lacp.Metrics.Request: + LacpLagMember.Metrics.Request: description: |- The request to retrieve LACP per LAG member metrics/statistics. type: object @@ -10847,9 +9188,9 @@ components: items: type: string x-enum: - lacp_packets_rx: + lacp_in_pkts: x-field-uid: 1 - lacp_packets_tx: + lacp_out_pkts: x-field-uid: 2 lacp_rx_errors: x-field-uid: 3 @@ -10878,505 +9219,148 @@ components: partner_port_num: x-field-uid: 15 enum: - - lacp_packets_rx - - lacp_packets_tx + - lacp_in_pkts + - lacp_out_pkts - lacp_rx_errors - activity - - timeout - - synchronization - - aggregatable - - collecting - - distributing - - system_id - - oper_key - - partner_id - - partner_key - - port_num - - partner_port_num - x-field-uid: 3 - Lacp.Metric: - description: |- - LACP metrics (statistics) per LAG member. - type: object - properties: - lag_name: - description: |- - The name of a LAG (ports group) configured with LACP. - type: string - x-field-uid: 1 - lag_member_port_name: - description: |- - The name of a LAG member (port) configured with LACP. - type: string - x-field-uid: 2 - lacp_packets_rx: - description: |- - Number of LACPDUs received. - type: integer - format: int64 - minimum: 0 - x-field-uid: 3 - lacp_packets_tx: - description: |- - Number of LACPDUs transmitted. - type: integer - format: int64 - minimum: 0 - x-field-uid: 4 - lacp_rx_errors: - description: |- - Number of LACPDUs receive packet errors. - type: integer - format: int64 - minimum: 0 - x-field-uid: 5 - activity: - description: |- - Indicates participant is active or passive. - type: string - x-field-uid: 6 - x-enum: - active: - x-field-uid: 1 - passive: - x-field-uid: 2 - enum: - - active - - passive - timeout: - description: |- - The timeout type (short or long) used by the participant. - type: string - x-field-uid: 7 - x-enum: - short: - x-field-uid: 1 - long: - x-field-uid: 2 - enum: - - short - - long - synchronization: - description: |- - Indicates whether the participant is in-sync or out-of-sync. - type: string - x-field-uid: 8 - x-enum: - in_sync: - x-field-uid: 1 - out_sync: - x-field-uid: 2 - enum: - - in_sync - - out_sync - aggregatable: - description: |- - A true value indicates that the participant will allow the link to be used as part of the aggregate. A false value indicates the link should be used as an individual link. - type: boolean - x-field-uid: 9 - collecting: - description: |- - If true, the participant is collecting incoming frames on the link, otherwise false. - type: boolean - x-field-uid: 10 - distributing: - description: |- - When true, the participant is distributing outgoing frames; when false, distribution is disabled. - type: boolean - x-field-uid: 11 - system_id: - description: |- - MAC address that defines the local system ID for the aggregate interface. - type: string - format: mac - x-field-uid: 12 - oper_key: - description: |- - Current operational value of the key for the aggregate interface. - type: integer - format: int32 - x-field-uid: 13 - partner_id: - description: |- - MAC address representing the protocol partner's interface system ID. - type: string - format: mac - x-field-uid: 14 - partner_key: - description: |- - Operational value of the protocol partner's key. - type: integer - format: int32 - x-field-uid: 15 - port_num: - description: |- - Port number of the local (actor) aggregation member. - type: integer - format: int32 - x-field-uid: 16 - partner_port_num: - description: |- - Port number of the partner (remote) port for this member port. - type: integer - format: int32 - x-field-uid: 17 - Lldp.Metrics.Request: - description: |- - The request to retrieve LLDP per instance metrics/statistics. - type: object - properties: - lldp_names: - description: | - The names of LLDP instances to return results for. An empty list will return results for all LLDP instances. - - x-constraint: - - /components/schemas/Lldp/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Lldp/properties/name - x-field-uid: 1 - column_names: - description: |- - The requested list of column names for the result set. If the list is empty then metrics for all columns will be returned. The name of LLDP instance can not be excluded. - type: array - items: - type: string - x-enum: - frames_rx: - x-field-uid: 1 - frames_tx: - x-field-uid: 2 - frames_error_rx: - x-field-uid: 3 - frames_discard: - x-field-uid: 4 - tlvs_discard: - x-field-uid: 5 - tlvs_unknown: - x-field-uid: 6 - enum: - - frames_rx - - frames_tx - - frames_error_rx - - frames_discard - - tlvs_discard - - tlvs_unknown - x-field-uid: 2 - Lldp.Metric: - description: |- - LLDP per instance statistics information. - type: object - properties: - name: - description: |- - The name of the configured LLDP instance. - type: string - x-field-uid: 1 - frames_rx: - description: |- - Number of LLDP frames received. - type: integer - format: int64 - x-field-uid: 2 - frames_tx: - description: |- - Number of LLDP frames transmitted. - type: integer - format: int64 - x-field-uid: 3 - frames_error_rx: - description: |- - Number of LLDP frames received with packet errors. This stat should be incremented based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 AB-2005. - type: integer - format: int64 - x-field-uid: 4 - frames_discard: - description: |- - Number of LLDP frames received that are discarded. This stat should be incremented when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, out of order or contains an out of range information string length. This stat should follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. - type: integer - format: int64 - x-field-uid: 5 - tlvs_discard: - description: |- - Number of LLDP tlvs received that are discarded. If any TLV contains an error condition specific for that particular TLV or if any TLV extends past the physical end of the frame then these TLVs will be discarded. - type: integer - format: int64 - x-field-uid: 6 - tlvs_unknown: - description: |- - Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific TLV and/or organizationally defined subtype are not recognized,or if TLV type value is in the range of reserved TLV types then these TLVs will be considered as unknown TLVs. - type: integer - format: int64 - x-field-uid: 7 - Rsvp.Metrics.Request: - description: |- - The request to retrieve RSVP-TE per Router metrics/statistics. - type: object - properties: - router_names: - description: | - The names of RSVP-TE Routers to return results for. An empty list as input will return results for all RSVP-TE routers. - - x-constraint: - - /components/schemas/Device.Rsvp/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Device.Rsvp/properties/name - x-field-uid: 1 - column_names: - description: "The list of column names that the returned result set will\ - \ contain. If the input list is empty then all columns will be returned\ - \ except for any result_groups. " - type: array - items: - type: string - x-enum: - ingress_p2p_lsps_configured: - x-field-uid: 1 - ingress_p2p_lsps_up: - x-field-uid: 2 - egress_p2p_lsps_up: - x-field-uid: 3 - lsp_flap_count: - x-field-uid: 4 - paths_tx: - x-field-uid: 5 - paths_rx: - x-field-uid: 6 - resvs_tx: - x-field-uid: 7 - resvs_rx: - x-field-uid: 8 - path_tears_tx: - x-field-uid: 9 - path_tears_rx: - x-field-uid: 10 - resv_tears_tx: - x-field-uid: 11 - resv_tears_rx: - x-field-uid: 12 - path_errors_tx: - x-field-uid: 13 - path_errors_rx: - x-field-uid: 14 - resv_errors_tx: - x-field-uid: 15 - resv_errors_rx: - x-field-uid: 16 - resv_conf_tx: - x-field-uid: 17 - resv_conf_rx: - x-field-uid: 18 - hellos_tx: - x-field-uid: 19 - hellos_rx: - x-field-uid: 20 - acks_tx: - x-field-uid: 21 - acks_rx: - x-field-uid: 22 - nacks_tx: - x-field-uid: 23 - nacks_rx: - x-field-uid: 24 - srefresh_tx: - x-field-uid: 25 - srefresh_rx: - x-field-uid: 26 - bundle_tx: - x-field-uid: 27 - bundle_rx: - x-field-uid: 28 - path_reevaluation_request_tx: - x-field-uid: 29 - path_reoptimizations: - x-field-uid: 30 - enum: - - ingress_p2p_lsps_configured - - ingress_p2p_lsps_up - - egress_p2p_lsps_up - - lsp_flap_count - - paths_tx - - paths_rx - - resvs_tx - - resvs_rx - - path_tears_tx - - path_tears_rx - - resv_tears_tx - - resv_tears_rx - - path_errors_tx - - path_errors_rx - - resv_errors_tx - - resv_errors_rx - - resv_conf_tx - - resv_conf_rx - - hellos_tx - - hellos_rx - - acks_tx - - acks_rx - - nacks_tx - - nacks_rx - - srefresh_tx - - srefresh_rx - - bundle_tx - - bundle_rx - - path_reevaluation_request_tx - - path_reoptimizations - x-field-uid: 2 - Rsvp.Metric: - description: |- - RSVP-TE per router statistics information. + - timeout + - synchronization + - aggregatable + - collecting + - distributing + - system_id + - oper_key + - partner_id + - partner_key + - port_num + - partner_port_num + x-field-uid: 3 + LacpLagMember.Metric: + description: |- + LACP metrics (statistics) per LAG member. type: object properties: - name: + lag_name: description: |- - The name of a configured RSVP router. + The name of a LAG (ports group) configured with LACP. type: string x-field-uid: 1 - ingress_p2p_lsps_configured: + lag_member_port_name: description: |- - The number of ingress point-to-point LSPs configured or transiting through the RSVP router which have been initated from the test port. - type: integer + The name of a LAG member (port) configured with LACP. + type: string x-field-uid: 2 - ingress_p2p_lsps_up: - description: "The number of ingress point-to-point LSPs for which Resv has\ - \ been received and is currently up. " + lacp_in_pkts: + description: |- + Number of LACPDUs received. type: integer + format: int64 + minimum: 0 x-field-uid: 3 - egress_p2p_lsps_up: + lacp_out_pkts: description: |- - The number of egress point-to-point LSPs for which Path requests were successfully processed and is currently up. + Number of LACPDUs transmitted. type: integer + format: int64 + minimum: 0 x-field-uid: 4 - lsp_flap_count: + lacp_rx_errors: description: |- - The number of times an LSP went from up to down state either because it timed out while waiting for Refreshes or a PathTear or ResvTear message was received which caused the LSP to flap. + Number of LACPDUs receive packet errors. type: integer + format: int64 + minimum: 0 x-field-uid: 5 - paths_tx: + activity: description: |- - The number of Path messages sent by this RSVP router. - type: integer + Indicates participant is active or passive. + type: string x-field-uid: 6 - paths_rx: + x-enum: + active: + x-field-uid: 1 + passive: + x-field-uid: 2 + enum: + - active + - passive + timeout: description: |- - The number of Path messages received by this RSVP router. - type: integer + The timeout type (short or long) used by the participant. + type: string x-field-uid: 7 - resvs_tx: + x-enum: + short: + x-field-uid: 1 + long: + x-field-uid: 2 + enum: + - short + - long + synchronization: description: |- - The number of Resv messages sent by this RSVP router. - type: integer + Indicates whether the participant is in-sync or out-of-sync. + type: string x-field-uid: 8 - resvs_rx: + x-enum: + in_sync: + x-field-uid: 1 + out_sync: + x-field-uid: 2 + enum: + - in_sync + - out_sync + aggregatable: description: |- - The number of Resv messages received by this RSVP router. - type: integer + A true value indicates that the participant will allow the link to be used as part of the aggregate. A false value indicates the link should be used as an individual link. + type: boolean x-field-uid: 9 - path_tears_tx: + collecting: description: |- - The number of Path Tear messages sent by this RSVP router. - type: integer + If true, the participant is collecting incoming frames on the link, otherwise false. + type: boolean x-field-uid: 10 - path_tears_rx: - description: "The number of Path Tear messages received by this RSVP router. " - type: integer + distributing: + description: |- + When true, the participant is distributing outgoing frames; when false, distribution is disabled. + type: boolean x-field-uid: 11 - resv_tears_tx: + system_id: description: |- - The number of Resv Tear messages sent by this RSVP router. - type: integer + MAC address that defines the local system ID for the aggregate interface. + type: string + format: mac x-field-uid: 12 - resv_tears_rx: - description: "The number of Resv Tear messages received by this RSVP router. " + oper_key: + description: |- + Current operational value of the key for the aggregate interface. type: integer + format: int32 x-field-uid: 13 - path_errors_tx: + partner_id: description: |- - The number of Path Error messages sent by this RSVP router. - type: integer + MAC address representing the protocol partner's interface system ID. + type: string + format: mac x-field-uid: 14 - path_errors_rx: - description: "The number of Path Error messages received by this RSVP router. " + partner_key: + description: |- + Operational value of the protocol partner's key. type: integer + format: int32 x-field-uid: 15 - resv_errors_tx: + port_num: description: |- - The number of Resv Error messages sent by this RSVP router. + Port number of the local (actor) aggregation member. type: integer + format: int32 x-field-uid: 16 - resv_errors_rx: - description: "The number of Resv Error messages received by this RSVP router. " - type: integer - x-field-uid: 17 - resv_conf_tx: - description: |- - The number of ResvConf messages sent by this RSVP router. - type: integer - x-field-uid: 18 - resv_conf_rx: - description: "The number of ResvConf messages received by this RSVP router. " - type: integer - x-field-uid: 19 - hellos_tx: - description: |- - The number of Hello messages sent by this RSVP router. - type: integer - x-field-uid: 20 - hellos_rx: - description: "The number of Hello messages received by this RSVP router. " - type: integer - x-field-uid: 21 - acks_tx: - description: |- - The number of Ack messages sent by this RSVP router. - type: integer - x-field-uid: 22 - acks_rx: - description: "The number of Ack messages received by this RSVP router. " - type: integer - x-field-uid: 23 - nacks_tx: - description: |- - The number of Nack messages sent by this RSVP router. - type: integer - x-field-uid: 24 - nacks_rx: - description: "The number of Nack messages received by this RSVP router. " - type: integer - x-field-uid: 25 - srefresh_tx: - description: |- - The number of SRefresh messages sent by this RSVP router. - type: integer - x-field-uid: 26 - srefresh_rx: - description: "The number of SRefresh messages received by this RSVP router. " - type: integer - x-field-uid: 27 - bundle_tx: - description: |- - The number of Bundle messages sent by this RSVP router. - type: integer - x-field-uid: 28 - bundle_rx: - description: "The number of Bundle messages received by this RSVP router. " - type: integer - x-field-uid: 29 - path_reevaluation_request_tx: - description: |- - The number of Path messages with Path Re-evaluation Request enabled sent by this RSVP router. - type: integer - x-field-uid: 30 - path_reoptimizations: + partner_port_num: description: |- - The number of successfully completed Make-Before-Break operations on LSPs on this RSVP router. + Port number of the partner (remote) port for this member port. type: integer - x-field-uid: 31 + format: int32 + x-field-uid: 17 States.Request: description: |- Request to traffic generator for states of choice @@ -11395,17 +9379,11 @@ components: x-field-uid: 3 isis_lsps: x-field-uid: 4 - lldp_neighbors: - x-field-uid: 5 - rsvp_lsps: - x-field-uid: 6 enum: - ipv4_neighbors - ipv6_neighbors - bgp_prefixes - isis_lsps - - lldp_neighbors - - rsvp_lsps ipv4_neighbors: $ref: '#/components/schemas/Neighborsv4.States.Request' x-field-uid: 2 @@ -11418,12 +9396,6 @@ components: isis_lsps: $ref: '#/components/schemas/IsisLsps.State.Request' x-field-uid: 5 - lldp_neighbors: - $ref: '#/components/schemas/LldpNeighbors.State.Request' - x-field-uid: 6 - rsvp_lsps: - $ref: '#/components/schemas/RsvpLsps.State.Request' - x-field-uid: 7 States.Response: description: |- Response containing chosen traffic generator states @@ -11442,17 +9414,11 @@ components: x-field-uid: 3 isis_lsps: x-field-uid: 4 - lldp_neighbors: - x-field-uid: 5 - rsvp_lsps: - x-field-uid: 6 enum: - ipv4_neighbors - ipv6_neighbors - bgp_prefixes - isis_lsps - - lldp_neighbors - - rsvp_lsps ipv4_neighbors: type: array items: @@ -11473,16 +9439,6 @@ components: items: $ref: '#/components/schemas/IsisLsps.State' x-field-uid: 5 - lldp_neighbors: - type: array - items: - $ref: '#/components/schemas/LldpNeighbors.State' - x-field-uid: 6 - rsvp_lsps: - type: array - items: - $ref: '#/components/schemas/RsvpLsps.State' - x-field-uid: 7 Neighborsv4.States.Request: description: |- The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). @@ -11641,12 +9597,9 @@ components: x-field-uid: 1 egp: x-field-uid: 2 - incomplete: - x-field-uid: 3 enum: - igp - egp - - incomplete path_id: x-field-uid: 4 description: |- @@ -11678,12 +9631,9 @@ components: x-field-uid: 1 egp: x-field-uid: 2 - incomplete: - x-field-uid: 3 enum: - igp - egp - - incomplete path_id: x-field-uid: 4 description: |- @@ -11734,12 +9684,9 @@ components: x-field-uid: 1 egp: x-field-uid: 2 - incomplete: - x-field-uid: 3 enum: - igp - egp - - incomplete path_id: x-field-uid: 4 description: |- @@ -11792,12 +9739,9 @@ components: x-field-uid: 1 egp: x-field-uid: 2 - incomplete: - x-field-uid: 3 enum: - igp - egp - - incomplete path_id: x-field-uid: 4 description: |- @@ -12120,193 +10064,71 @@ components: type: array items: $ref: '#/components/schemas/IsisLsp.neighbor' - x-field-uid: 1 - IsisLsp.ExtendedIsReachabilityTlv: - description: |- - This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type 22). - type: object - properties: - neighbors: - description: |- - This container describes IS neighbors. - type: array - items: - $ref: '#/components/schemas/IsisLsp.neighbor' - x-field-uid: 1 - IsisLsp.neighbor: - description: |- - This contains IS neighbors. - type: object - properties: - system_id: - description: |- - The System ID for this emulated ISIS router, e.g. "640100010000". - type: string - format: hex - x-field-uid: 1 - IsisLsp.Ipv4InternalReachabilityTlv: - description: |- - This container defines list of IPv4 internal reachability information in one IPv4 internal reachability TLV. - This is advertised when the origin-type is set 'internal' in route range configurations. - type: object - properties: - prefixes: - description: |- - Describes list of IPv4 prefixes in this TLV. - type: array - items: - $ref: '#/components/schemas/IsisLsp.V4Prefix' - x-field-uid: 1 - IsisLsp.Ipv4ExternalReachabilityTlv: - description: |- - This container defines list of IPv4 external reachability information in one IPv4 external reachability TLV. - This is advertised when the origin-type is set 'external' in route range configurations. - type: object - properties: - prefixes: - description: |- - Describes list of IPv4 prefixes in this TLV.. - type: array - items: - $ref: '#/components/schemas/IsisLsp.V4Prefix' - x-field-uid: 1 - IsisLsp.V4Prefix: - description: |- - This group defines attributes of an IPv4 standard prefix. - type: object - properties: - ipv4_address: - description: |- - An IPv4 unicast prefix reachable via the originator of this LSP. - type: string - x-field-uid: 1 - prefix_length: - description: |- - The length of the IPv4 prefix. - type: integer - x-field-uid: 2 - redistribution_type: - description: "Up (0)-used when a prefix is initially advertised within the\ - \ ISIS L3 hierarchy, \n and for all other prefixes in L1 and L2 LSPs.\ - \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\ - \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\ - \ (L2) down to a lower level (L1). " - type: string - x-field-uid: 3 - x-enum: - up: - x-field-uid: 1 - down: - x-field-uid: 2 - enum: - - up - - down - default_metric: - description: |- - ISIS default metric value. - type: integer - x-field-uid: 4 - origin_type: - description: "The origin of the advertised route-internal or external to\ - \ the ISIS area. Options include the following: \n Internal-for intra-area\ - \ routes, through Level 1 LSPs. \n External-for inter-area routes redistributed\ - \ within L1, through Level\n1 LSPs." - type: string - x-field-uid: 5 - x-enum: - internal: - x-field-uid: 1 - external: - x-field-uid: 2 - enum: - - internal - - external - IsisLsp.ExtendedIpv4ReachabilityTlv: + x-field-uid: 1 + IsisLsp.ExtendedIsReachabilityTlv: description: |- - This container defines list of IPv4 extended reachability information in one Extended IPv4 External Reachability TLV. - It is advertised when the 'wide metric' is enabled. + This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type 22). type: object properties: - prefixes: + neighbors: description: |- - IPv4 prefix contained within extended reachability TLVs. + This container describes IS neighbors. type: array items: - $ref: '#/components/schemas/IsisLsp.ExtendedV4Prefix' + $ref: '#/components/schemas/IsisLsp.neighbor' x-field-uid: 1 - IsisLsp.ExtendedV4Prefix: + IsisLsp.neighbor: description: |- - This group defines attributes of an IPv4 standard prefix. + This contains IS neighbors. type: object properties: - ipv4_address: + system_id: description: |- - An IPv4 unicast prefix reachable via the originator of this LSP. + The System ID for this emulated ISIS router, e.g. "640100010000". type: string - format: ipv4 + format: hex x-field-uid: 1 - prefix_length: - description: |- - The length of the IPv4 prefix. - type: integer - x-field-uid: 2 - metric: + IsisLsp.Ipv4InternalReachabilityTlv: + description: |- + This container defines list of IPv4 internal reachability information in one IPv4 internal reachability TLV. + This is advertised when the origin-type is set 'internal' in route range configurations. + type: object + properties: + prefixes: description: |- - ISIS wide metric. - type: integer - x-field-uid: 3 - redistribution_type: - description: "Up (0)-used when a prefix is initially advertised within the\ - \ ISIS L3 hierarchy, \n and for all other prefixes in L1 and L2 LSPs.\ - \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\ - \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\ - \ (L2) down to a lower level (L1). " - type: string - x-field-uid: 4 - x-enum: - up: - x-field-uid: 1 - down: - x-field-uid: 2 - enum: - - up - - down - prefix_attributes: - $ref: '#/components/schemas/IsisLsp.PrefixAttributes' - x-field-uid: 5 - IsisLsp.Ipv6ReachabilityTlv: + Describes list of IPv4 prefixes in this TLV. + type: array + items: + $ref: '#/components/schemas/IsisLsp.V4Prefix' + x-field-uid: 1 + IsisLsp.Ipv4ExternalReachabilityTlv: description: |- - It defines list of IPv6 extended reachability information in one IPv6 Reachability TLV. + This container defines list of IPv4 external reachability information in one IPv4 external reachability TLV. + This is advertised when the origin-type is set 'external' in route range configurations. type: object properties: prefixes: description: |- - IPv6 prefix contained within reachability TLVs. + Describes list of IPv4 prefixes in this TLV.. type: array items: - $ref: '#/components/schemas/IsisLsp.V6Prefix' + $ref: '#/components/schemas/IsisLsp.V4Prefix' x-field-uid: 1 - IsisLsp.V6Prefix: + IsisLsp.V4Prefix: description: |- - It defines attributes of an IPv6 standard prefix. + This group defines attributes of an IPv4 standard prefix. type: object properties: - ipv6_address: + ipv4_address: description: |- - An IPv6 unicast prefix reachable via the originator of this LSP. + An IPv4 unicast prefix reachable via the originator of this LSP. type: string - format: ipv6 x-field-uid: 1 prefix_length: description: |- - The length of the IPv6 prefix. + The length of the IPv4 prefix. type: integer x-field-uid: 2 - metric: - description: |- - ISIS wide metric. - type: integer - x-field-uid: 3 redistribution_type: description: "Up (0)-used when a prefix is initially advertised within the\ \ ISIS L3 hierarchy, \n and for all other prefixes in L1 and L2 LSPs.\ @@ -12314,7 +10136,7 @@ components: \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\ \ (L2) down to a lower level (L1). " type: string - x-field-uid: 4 + x-field-uid: 3 x-enum: up: x-field-uid: 1 @@ -12323,6 +10145,11 @@ components: enum: - up - down + default_metric: + description: |- + ISIS default metric value. + type: integer + x-field-uid: 4 origin_type: description: "The origin of the advertised route-internal or external to\ \ the ISIS area. Options include the following: \n Internal-for intra-area\ @@ -12334,365 +10161,104 @@ components: internal: x-field-uid: 1 external: - x-field-uid: 2 - enum: - - internal - - external - prefix_attributes: - $ref: '#/components/schemas/IsisLsp.PrefixAttributes' - x-field-uid: 6 - IsisLsp.PrefixAttributes: - description: |- - This contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html - type: object - properties: - x_flag: - description: |- - External Prefix Flag (Bit 0) - type: boolean - x-field-uid: 1 - r_flag: - description: |- - Re-advertisement Flag (Bit 1) - type: boolean - x-field-uid: 2 - n_flag: - description: |- - Node Flag (Bit 2) - type: boolean - x-field-uid: 3 - LldpNeighbors.State.Request: - description: |- - The request to retrieve LLDP neighbor information for a given instance. - type: object - properties: - lldp_names: - description: | - The names of LLDP instances for which neighbor information will be retrieved. If no names are specified then the results will contain neighbor information for all configured LLDP instances. - - x-constraint: - - /components/schemas/Lldp/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Lldp/properties/name - x-field-uid: 1 - neighbor_id_filters: - description: |- - Specify the neighbors for which information will be returned. If empty or missing then information for all neighbors will be returned. - type: array - items: - type: string - x-field-uid: 2 - LldpNeighbors.State: - description: |- - LLDP neighbor information. - type: object - properties: - lldp_name: - description: |- - The name of the LLDP instance. - type: string - x-field-uid: 1 - system_name: - description: |- - The system name field shall contain an alpha-numeric string that indicates the system's administratively assigned name. The system name should be the system's fully qualified domain name. If implementations support IETF RFC 3418, the sysName object should be used for this field. - type: string - x-field-uid: 2 - system_description: - description: |- - The system description field shall contain an alpha-numeric string that is the textual description of the network entity. The system description should include the full name and version identification of the system's hardware type, software operating system, and networking software. If implementations support IETF RFC 3418, the sysDescr object should be used for this field. - type: string - x-field-uid: 3 - chassis_id: - description: |- - The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint identifier associated with the transmitting LLDP agent. - type: string - x-field-uid: 4 - chassis_id_type: - description: |- - This field identifies the format and source of the chassis identifier string. It is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. - type: string - x-enum: - port_component: - x-field-uid: 1 - network_address: - x-field-uid: 2 - chassis_component: - x-field-uid: 3 - mac_address: - x-field-uid: 4 - interface_name: - x-field-uid: 5 - local: - x-field-uid: 6 - interface_alias: - x-field-uid: 7 - x-field-uid: 5 - enum: - - port_component - - network_address - - chassis_component - - mac_address - - interface_name - - local - - interface_alias - neighbor_id: - description: |- - System generated identifier for the neighbor on the LLDP instance. - type: string - x-field-uid: 6 - age: - description: |- - Age since discovery in seconds. - type: integer - format: int64 - x-field-uid: 7 - last_update: - description: |- - Seconds since last update received. - type: integer - format: int64 - x-field-uid: 8 - ttl: - description: |- - The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information from the neighbor should be considered valid. - type: integer - x-field-uid: 9 - port_id: - description: |- - The Port ID is a mandatory TLV which identifies the port component of the endpoint identifier associated with the transmitting LLDP agent. If the specified port is an IEEE 802.3 Repeater port, then this TLV is optional. - type: string - x-field-uid: 10 - port_id_type: - description: |- - This field identifies the format and source of the port identifier string. It is an enumerator defined by the PtopoPortIdType object from RFC2922. - type: string - x-enum: - port_component: - x-field-uid: 1 - network_address: - x-field-uid: 2 - agent_circuit_id: - x-field-uid: 3 - mac_address: - x-field-uid: 4 - interface_name: - x-field-uid: 5 - local: - x-field-uid: 6 - interface_alias: - x-field-uid: 7 - x-field-uid: 11 - enum: - - port_component - - network_address - - agent_circuit_id - - mac_address - - interface_name - - local - - interface_alias - port_description: - description: |- - The binary string containing the actual port identifier for the port which this LLDP PDU was transmitted. The source and format of this field is defined by PtopoPortId from RFC2922. - type: string - x-field-uid: 12 - management_address: - description: |- - The Management Address is a mandatory TLV which identifies a network address associated with the local LLDP agent, which can be used to reach the agent on the port identified in the Port ID TLV. - type: string - x-field-uid: 13 - management_address_type: - description: |- - The enumerated value for the network address type identified in this TLV. This enumeration is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers object. - type: string - x-field-uid: 14 - custom_tlvs: - type: array - items: - $ref: '#/components/schemas/LldpCustomTLV.State' - x-field-uid: 15 - capabilities: - type: array - items: - $ref: '#/components/schemas/LldpCapability.State' - x-field-uid: 16 - LldpCustomTLV.State: - description: |- - Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised with TLV type 127. - type: object - properties: - custom_type: - description: |- - The integer value identifying the type of information contained in the value field. - type: integer - x-field-uid: 1 - oui: - description: |- - The organizationally unique identifier field shall contain the organization's OUI as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. - type: string - x-field-uid: 2 - oui_subtype: - description: |- - The organizationally defined subtype field shall contain a unique subtype value assigned by the defining organization. - type: string - x-field-uid: 3 - LldpCapability.State: - description: |- - LLDP system capability advertised by the neighbor - type: object - properties: - capability_name: - description: |- - Name of the system capability advertised by the neighbor. Capabilities are represented in a bitmap that defines the primary functions of the system. The capabilities are defined in IEEE 802.1AB. - type: string - x-enum: - mac_bridge: - x-field-uid: 1 - two_port_mac_relay: - x-field-uid: 2 - repeater: - x-field-uid: 3 - docsis_cable_device: - x-field-uid: 4 - s_vlan: - x-field-uid: 5 - telephone: - x-field-uid: 6 - other: - x-field-uid: 7 - router: - x-field-uid: 8 - c_vlan: - x-field-uid: 9 - station_only: - x-field-uid: 10 - wlan_access_point: - x-field-uid: 11 - x-field-uid: 1 - enum: - - mac_bridge - - two_port_mac_relay - - repeater - - docsis_cable_device - - s_vlan - - telephone - - other - - router - - c_vlan - - station_only - - wlan_access_point - capability_enabled: - description: |- - Indicates whether the corresponding system capability is enabled on the neighbor. - type: boolean - x-field-uid: 2 - RsvpLsps.State.Request: - description: |- - The request to retrieve RSVP Label Switched Path (LSP) information learned by the router. - type: object - properties: - rsvp_router_names: - description: | - The names of RSVP-TE routers for which learned information is requested. An empty list will return results for all RSVP=TE routers. - - x-constraint: - - /components/schemas/Device.Rsvp/properties/name - type: array - items: - type: string - x-constraint: - - /components/schemas/Device.Rsvp/properties/name - x-field-uid: 1 - RsvpLsps.State: + x-field-uid: 2 + enum: + - internal + - external + IsisLsp.ExtendedIpv4ReachabilityTlv: description: |- - Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. + This container defines list of IPv4 extended reachability information in one Extended IPv4 External Reachability TLV. + It is advertised when the 'wide metric' is enabled. type: object properties: - rsvp_router_name: - description: |- - The name of the RSVP-TE Router. - type: string - x-field-uid: 1 - ipv4_lsps: + prefixes: description: |- - IPv4 Point-to-Point RSVP-TE Discovered LSPs. + IPv4 prefix contained within extended reachability TLVs. type: array items: - $ref: '#/components/schemas/RsvpIPv4Lsp.State' - x-field-uid: 2 - RsvpIPv4Lsp.State: + $ref: '#/components/schemas/IsisLsp.ExtendedV4Prefix' + x-field-uid: 1 + IsisLsp.ExtendedV4Prefix: description: |- - IPv4 RSVP-TE Discovered LSPs. + This group defines attributes of an IPv4 standard prefix. type: object properties: - source_address: + ipv4_address: description: |- - The origin IPv4 address of RSVP session. + An IPv4 unicast prefix reachable via the originator of this LSP. type: string format: ipv4 x-field-uid: 1 - destination_address: + prefix_length: description: |- - The IPv4 destination address of RSVP session. - type: string - format: ipv4 + The length of the IPv4 prefix. + type: integer x-field-uid: 2 - lsp: + metric: description: |- - It refers to the RSVP LSP properties. - $ref: '#/components/schemas/RsvpLsp.State' + ISIS wide metric. + type: integer x-field-uid: 3 - rros: - description: |- - It refers to RSVP RRO objects container. - items: - $ref: '#/components/schemas/RsvpLsp.Ipv4Rro' - type: array + redistribution_type: + description: "Up (0)-used when a prefix is initially advertised within the\ + \ ISIS L3 hierarchy, \n and for all other prefixes in L1 and L2 LSPs.\ + \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\ + \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\ + \ (L2) down to a lower level (L1). " + type: string x-field-uid: 4 - eros: - description: |- - It refers to RSVP ERO objects container. - items: - $ref: '#/components/schemas/RsvpLsp.Ipv4Ero' - type: array + x-enum: + up: + x-field-uid: 1 + down: + x-field-uid: 2 + enum: + - up + - down + prefix_attributes: + $ref: '#/components/schemas/IsisLsp.PrefixAttributes' x-field-uid: 5 - RsvpLsp.State: + IsisLsp.Ipv6ReachabilityTlv: description: |- - IPv4 RSVP-TE Discovered LSPs. + It defines list of IPv6 extended reachability information in one IPv6 Reachability TLV. type: object properties: - tunnel_id: + prefixes: description: |- - The tunnel id of RSVP session which acts as an identifier that remains constant over the life of the tunnel. - type: integer + IPv6 prefix contained within reachability TLVs. + type: array + items: + $ref: '#/components/schemas/IsisLsp.V6Prefix' x-field-uid: 1 - lsp_id: - description: |- - The lsp-id of RSVP session which acts as a differentiator for two lsps originating from the same headend, commonly used to distinguish RSVP sessions during make before break operations. - type: integer - x-field-uid: 2 - session_name: + IsisLsp.V6Prefix: + description: |- + It defines attributes of an IPv6 standard prefix. + type: object + properties: + ipv6_address: description: |- - The value of RSVP-TE Session Name field of the Session Attribute object. + An IPv6 unicast prefix reachable via the originator of this LSP. type: string - x-field-uid: 3 - label_in: + format: ipv6 + x-field-uid: 1 + prefix_length: description: |- - The label received by RSVP-TE ingress. + The length of the IPv6 prefix. type: integer - x-field-uid: 4 - label_out: + x-field-uid: 2 + metric: description: |- - The label assigned by RSVP-TE egress. + ISIS wide metric. type: integer - x-field-uid: 5 - session_status: - description: |- - Operational state of the RSVP LSP. + x-field-uid: 3 + redistribution_type: + description: "Up (0)-used when a prefix is initially advertised within the\ + \ ISIS L3 hierarchy, \n and for all other prefixes in L1 and L2 LSPs.\ + \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\ + \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\ + \ (L2) down to a lower level (L1). " type: string - x-field-uid: 6 + x-field-uid: 4 x-enum: up: x-field-uid: 1 @@ -12701,91 +10267,44 @@ components: enum: - up - down - last_flap_reason: - description: |- - The reason for the last flap of this RSVP session. + origin_type: + description: "The origin of the advertised route-internal or external to\ + \ the ISIS area. Options include the following: \n Internal-for intra-area\ + \ routes, through Level 1 LSPs. \n External-for inter-area routes redistributed\ + \ within L1, through Level\n1 LSPs." type: string - x-field-uid: 7 + x-field-uid: 5 x-enum: - resv_tear: + internal: x-field-uid: 1 - path_tear: + external: x-field-uid: 2 - path_timeout: - x-field-uid: 3 enum: - - resv_tear - - path_tear - - path_timeout - up_time: - description: |- - The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. - type: integer - format: int64 - x-field-uid: 8 - RsvpLsp.Ipv4Rro: - description: "This contains the list of Record Route Object(RRO) objects associated\ - \ with the traffic engineering tunnel. The Record Route Object(RRO) is used\ - \ in RSVP-TE to record the route traversed by the LSP. The RRO might be present\ - \ in both Path message and Resv message, the RRO stores the IP addresses\ - \ of the routers that the traffic engineering tunnel traversed and also the\ - \ label generated and distributed by the routers. The RROs in the Resv message\ - \ mirrors that of the Path message, the only difference is that the RRO in\ - \ a Resv message records the path information in the reverse direction. " - properties: - address: - description: |- - The IPv4 addresses of the routers that the traffic engineering tunnel traversed. - type: string - format: ipv4 - x-field-uid: 1 - reported_label: - description: "Label reported for RRO hop. When the Label_Recording flag\ - \ is set in the Session Attribute object, nodes doing route recording\ - \ should include the Label Record subobject containing the reported label. " - type: integer - x-field-uid: 2 - RsvpLsp.Ipv4Ero: + - internal + - external + prefix_attributes: + $ref: '#/components/schemas/IsisLsp.PrefixAttributes' + x-field-uid: 6 + IsisLsp.PrefixAttributes: description: |- - This contains the list of sub-objects included in the Explicit Route Object(ERO) object send in the PATH message from the ingress. These sub-objects contain the intermediate hops to be traversed by the LSP while being forwarded towards the egress endpoint. + This contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html type: object properties: - prefix: + x_flag: description: |- - The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 prefix. - type: string - format: ipv4 + External Prefix Flag (Bit 0) + type: boolean x-field-uid: 1 - asn: + r_flag: description: |- - The autonomous system number indicated by the ERO. Specified only when the ERO hop is an 2 or 4-byte AS number. - type: integer + Re-advertisement Flag (Bit 1) + type: boolean x-field-uid: 2 - type: + n_flag: description: |- - The type indicated by the ERO. - type: string + Node Flag (Bit 2) + type: boolean x-field-uid: 3 - x-enum: - ipv4: - x-field-uid: 1 - ipv6: - x-field-uid: 2 - asn: - x-field-uid: 3 - asn4: - x-field-uid: 4 - label: - x-field-uid: 5 - unnumbered_interface: - x-field-uid: 6 - enum: - - ipv4 - - ipv6 - - asn - - asn4 - - label - - unnumbered_interface Capture.Request: description: |- The capture result request to the traffic generator. Stops the port capture on the port_name and returns the capture. @@ -22921,26 +20440,133 @@ components: decrement: $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.Counter' x-field-uid: 6 - Version: + Pattern.Endpoints.Client.Ports.Counter: description: |- - Version details + integer counter pattern type: object properties: - api_spec_version: - description: |- - Version of API specification - type: string - default: '' + start: + type: integer x-field-uid: 1 - sdk_version: - description: |- - Version of SDK generated from API specification + default: 80 + minimum: 0 + maximum: 7 + step: + type: integer + x-field-uid: 2 + default: 1 + minimum: 0 + maximum: 7 + count: + type: integer + default: 1 + x-field-uid: 3 + Pattern.Endpoints.Client.Ports: + description: |- + TCP port range + type: object + properties: + choice: type: string - default: '' + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer x-field-uid: 2 - app_version: - description: |- - Version of application consuming or serving the API + default: 80 + minimum: 0 + maximum: 7 + values: + type: array + items: + type: integer + x-field-uid: 3 + default: + - 80 + minimum: 0 + maximum: 7 + increment: + $ref: '#/components/schemas/Pattern.Endpoints.Client.Ports.Counter' + x-field-uid: 4 + decrement: + $ref: '#/components/schemas/Pattern.Endpoints.Client.Ports.Counter' + x-field-uid: 5 + Pattern.Endpoints.Server.Ports.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 80 + minimum: 0 + maximum: 7 + step: + type: integer + x-field-uid: 2 + default: 1 + minimum: 0 + maximum: 7 + count: + type: integer + default: 1 + x-field-uid: 3 + Pattern.Endpoints.Server.Ports: + description: |- + TCP port range + type: object + properties: + choice: type: string - default: '' + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 80 + minimum: 0 + maximum: 7 + values: + type: array + items: + type: integer x-field-uid: 3 + default: + - 80 + minimum: 0 + maximum: 7 + increment: + $ref: '#/components/schemas/Pattern.Endpoints.Server.Ports.Counter' + x-field-uid: 4 + decrement: + $ref: '#/components/schemas/Pattern.Endpoints.Server.Ports.Counter' + x-field-uid: 5 diff --git a/artifacts/otg.proto b/artifacts/otg.proto index 18632112..3eb5316c 100644 --- a/artifacts/otg.proto +++ b/artifacts/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.11.3 +/* Open Traffic Generator API 0.9.6 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -13,8 +13,6 @@ syntax = "proto3"; package otg; -option go_package = "./otg;otg"; - import "google/protobuf/descriptor.proto"; import "google/protobuf/empty.proto"; @@ -47,8 +45,9 @@ message Config { // Description missing in models optional ConfigOptions options = 8; - // LLDP protocol that will be configured on traffic generator. - repeated Lldp lldp = 9; + // The emulated protocols such as TCP/UDP, HTTP, etc and attacks, which can be attached + // to device IPv4/v6 interface. + repeated App apps = 9; } // Global configuration options. @@ -56,9 +55,6 @@ message ConfigOptions { // Description missing in models optional PortOptions port_options = 1; - - // Description missing in models - optional ProtocolOptions protocol_options = 2; } // An abstract test port. @@ -102,10 +98,7 @@ message Lag { optional LagProtocol protocol = 2; // Specifies the mininum number of member interfaces that must be active for the aggregate - // interface to be available. - // If the aggregate interface is not available due to min-links criterion not being - // met, LACPDUs continue to be transmitted and received by the member interfaces if - // LACP is enabled, but other PDUs are not transmitted or received. + // interface to be available // default = 1 optional int32 min_links = 3; @@ -237,8 +230,9 @@ message DeviceEthernetBase { // An Ethernet interface with IPv4 and IPv6 addresses. message DeviceEthernet { - // Deprecated: This property is deprecated in favor of property connection.port_name - // + // Status: {'status': 'deprecated', 'additional_information': 'property port_name is + // deprecated from the snappi version x.x.x.\nplease use connection.port_name instead + // of port_name'} // The unique name of a Port or a LAG that will emulate this interface. // port_name is deprecated and will be removed in future release.port_name and connection // can't be used together, use either port_name or connection. @@ -683,8 +677,8 @@ message Layer1Ieee8021qbb { optional int32 pfc_class_7 = 9; } -// Under Review: Information TBD -// +// Status: {'status': 'under-review', 'additional_information': 'Capture schema is under +// review'} // Configuration for capture settings. message Capture { @@ -939,22 +933,10 @@ message Device { // objects. // required = true string name = 7; - - // The properties of an RSVP router and its children. - optional DeviceRsvp rsvp = 8; -} - -// Common options that apply to all configured protocols and interfaces. -message ProtocolOptions { - - // When set to true, all underlying resources for configured protocols and interfaces - // shall be created and corresponding protocol session negotiation shall be initiated. - // Otherwise, when set to false, corresponding protocol session negotiation will need - // to be initiated using a separate set_protocol_state API call. - // default = True - optional bool auto_start_all = 1; } +// Status: {'status': 'under-review', 'additional_information': 'Device.IsisRouter is +// under review'} // A container of properties for an ISIS router and its interfaces. message DeviceIsisRouter { @@ -990,6 +972,8 @@ message DeviceIsisRouter { string name = 9; } +// Status: {'status': 'under-review', 'additional_information': 'Device.IsisMultiInstance +// is under review'} // This container properties of an Multi-Instance-capable router (MI-RTR). message DeviceIsisMultiInstance { @@ -1003,6 +987,8 @@ message DeviceIsisMultiInstance { repeated int32 itids = 2; } +// Status: {'status': 'under-review', 'additional_information': 'Isis.Interface is under +// review'} // Configuration for single ISIS interface. message IsisInterface { @@ -1090,6 +1076,7 @@ message IsisInterfaceLevel { optional int32 dead_interval = 3; } +// Status: {'status': 'under-review', 'additional_information': 'Isis.MT is under review'} // Configuration of properties per interface per topology when multiple topologies are // configured in an ISIS router. // in a ISIS router. @@ -1104,6 +1091,8 @@ message IsisMT { optional int32 link_metric = 2; } +// Status: {'status': 'under-review', 'additional_information': 'LinkState.TE is under +// review'} // A container for Traffic Engineering properties on a interface. message LinkStateTE { @@ -1601,122 +1590,6 @@ message DeviceBgpRouter { repeated BgpV6Interface ipv6_interfaces = 3; } -// All errors detected while processing the Message Header are indicated by sending -// the NOTIFICATION message with the Error Code-Message Header Error. The Error Subcode -// elaborates on the specific nature of the error. -message DeviceBgpMessageHeaderError { - - message Subcode { - enum Enum { - unspecified = 0; - connection_not_synchronized_code1_subcode1 = 1; - bad_message_length_code1_subcode2 = 2; - bad_message_type_code1_subcode3 = 3; - } - } - // The Error Subcode indicates the specific type of error encountered during Message - // Header processing. - // default = Subcode.Enum.connection_not_synchronized_code1_subcode1 - optional Subcode.Enum subcode = 1; -} - -// All errors detected while processing the OPEN message are indicated by sending the -// NOTIFICATION message with the Error Code-Open Message Error. The Error Subcode elaborates -// on the specific nature of the error. -message DeviceBgpOpenMessageError { - - message Subcode { - enum Enum { - unspecified = 0; - unsupported_version_number_code2_subcode1 = 1; - error_peer_as_code2_subcode2 = 2; - error_bgp_id_code2_subcode3 = 3; - unsupported_optional_parameter_code2_subcode4 = 4; - auth_failed_code2_subcode5 = 5; - unsupported_hold_time_code2_subcode6 = 6; - unsupported_capability_code2_subcode7 = 7; - } - } - // The Error Subcode indicates the specific type of error encountered during OPEN message - // processing. - // default = Subcode.Enum.unsupported_version_number_code2_subcode1 - optional Subcode.Enum subcode = 1; -} - -// All errors detected while processing the UPDATE message are indicated by sending -// the NOTIFICATION message with the Error Code-Update Message Error. The Error Subcode -// elaborates on the specific nature of the error. -message DeviceBgpUpdateMessageError { - - message Subcode { - enum Enum { - unspecified = 0; - malformed_attrib_list_code3_subcode1 = 1; - unrecognized_wellknown_attrib_code3_subcode2 = 2; - wellknown_attrib_missing_code3_subcode3 = 3; - attrib_flags_error_code3_subcode4 = 4; - attrib_length_error_code3_subcode5 = 5; - invalid_origin_attrib_code3_subcode6 = 6; - as_routing_loop_code3_subcode7 = 7; - invalid_nhop_attrib_code3_subcode8 = 8; - error_optional_attrib_code3_subcode9 = 9; - invalid_network_field_code3_subcode10 = 10; - abnormal_aspath_code3_subcode11 = 11; - } - } - // The Error Subcode, the specific type of error encountered during UPDATE processing. - // default = Subcode.Enum.malformed_attrib_list_code3_subcode1 - optional Subcode.Enum subcode = 1; -} - -// If a system does not receive successive KEEPALIVE, UPDATE, and/or NOTIFICATION messages -// within the period specified in the Hold Time field of the OPEN message, then the -// NOTIFICATION message with the Hold Timer Expired Error Code(Error Code 4) is sent -// and the BGP connection is closed. The Sub Code used is 0. If a user wants to use -// non zero Sub Code then CustomError can be used. -message DeviceBgpHoldTimerExpired { -} - -// Any error detected by the BGP Finite State Machine (e.g., receipt of an unexpected -// event) is indicated by sending the NOTIFICATION message with the Error Code-Finite -// State Machine Error(Error Code 5). The Sub Code used is 0. If a user wants to use -// non zero Sub Code then CustomError can be used. -message DeviceBgpFiniteStateMachineError { -} - -// In the absence of any fatal errors, a BGP peer can close its BGP connection by sending -// the NOTIFICATION message with the Error Code Cease. -message DeviceBgpCeaseError { - - message Subcode { - enum Enum { - unspecified = 0; - max_number_prefix_reached_code6_subcode1 = 1; - admin_shutdown_code6_subcode2 = 2; - peer_deleted_code6_subcode3 = 3; - admin_reset_code6_subcode4 = 4; - connection_reject_code6_subcode5 = 5; - other_config_changes_code6_subcode6 = 6; - connection_collision_resolution_code6_subcode7 = 7; - out_of_resources_code6_subcode8 = 8; - bfd_session_down_code6_subcode9 = 9; - } - } - // The Error Subcode to be sent to the peer in the Cease NOTIFICATION. - // default = Subcode.Enum.admin_shutdown_code6_subcode2 - optional Subcode.Enum subcode = 1; -} - -// A BGP peer can send NOTIFICATION message with user defined Error Code and Error Subcode. -message DeviceBgpCustomError { - - // The Error code to be sent in the NOTIFICATION message to peer. - optional int32 code = 1; - - // The Error Subcode to be sent in the NOTIFICATION message to peer. - optional int32 subcode = 2; -} - // Configuration for emulated BGPv4 peers and routes. message BgpV4Peer { @@ -1808,9 +1681,6 @@ message BgpV4Peer { // objects. // required = true string name = 13; - - // Description missing in models - optional BgpGracefulRestart graceful_restart = 14; } // Configuration for emulated BGPv4 peers and routes on a single IPv4 interface. @@ -1868,33 +1738,7 @@ message BgpV4EthernetSegment { // Optional community settings. repeated BgpCommunity communities = 7; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity ext_communities = 8; // Optional AS PATH settings. @@ -1913,45 +1757,20 @@ message BgpEthernetSegmentDfElection { // Configuration for advanced BGP route range settings. message BgpRouteAdvanced { - // BGP Multi Exit Discriminator attribute sent to the peer to help in the route selection - // process. If set to true, the Multi Exit Discriminator attribute will be included - // in the route advertisement. - // default = True - optional bool include_multi_exit_discriminator = 3; - - // The multi exit discriminator (MED) value used for route selection sent to the peer. + // The multi exit discriminator (MED) value. A null value means the MED feature is + // not enabled. optional int32 multi_exit_discriminator = 1; - // If set to true, the Origin attribute will be included in the route advertisement. - // default = True - optional bool include_origin = 4; - message Origin { enum Enum { unspecified = 0; igp = 1; egp = 2; - incomplete = 3; } } - // The origin attribute of a prefix can take three values: the prefix originates from - // an interior routing protocol 'igp', it originates from 'egp' or the origin is 'incomplete', - // if the prefix is learned through other means. + // The origin value. A null value means the origin feature is not enabled. // default = Origin.Enum.igp optional Origin.Enum origin = 2; - - // BGP Local Preference attribute sent to the peer to indicate the degree of preference - // for externally learned routes. If set to true, the Local Preference attribute will - // be included in the route advertisement. This should be included only for internal - // peers. - // default = True - optional bool include_local_preference = 5; - - // Value to be set in Local Preference attribute if include_local_preference is set - // to true. It is used for the selection of the path for the traffic leaving the AS. - // The route with the highest local preference value is preferred. - // default = 100 - optional int32 local_preference = 6; } // BGP communities provide additional capability for tagging routes and for modifying @@ -1983,12 +1802,12 @@ message BgpCommunity { } // The Extended Communities Attribute is a transitive optional BGP attribute, with the -// Type Code 16. Community and Extended Communities attributes are utilized to trigger -// routing decisions, such as acceptance, rejection, preference, or redistribution. -// An extended community is an 8-Bytes value. It is divided into two main parts. The -// first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes -// carry a unique set of data in a format defined by the type and sub-type field. Extended -// communities provide a larger range for grouping or categorizing communities. +// Type Code 16. Community and Extended Communities attributes to trigger routing decisions, +// such as acceptance, rejection, preference, or redistribution. An extended community +// is an 8-Bytes value. It is also divided into two main parts. The first 2 Bytes of +// the community encode a type and sub-type fields and the last 6 Bytes carry a unique +// set of data in a format defined by the type and sub-type field. Extended communities +// provide a larger range for grouping or categorizing communities. message BgpExtCommunity { message Type { @@ -2170,33 +1989,7 @@ message BgpV4EviVxlan { // Optional community settings. repeated BgpCommunity communities = 11; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity ext_communities = 12; // Optional AS PATH settings. @@ -2258,33 +2051,7 @@ message BgpCMacIpRange { // Optional community settings. repeated BgpCommunity communities = 8; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity ext_communities = 9; // Optional AS PATH settings. @@ -2345,6 +2112,8 @@ message BgpRouteTarget { optional string rt_value = 2; } +// Status: {'status': 'under-review', 'additional_information': 'Bgp.Advanced is under +// review'} // Configuration for BGP advanced settings. message BgpAdvanced { @@ -2373,6 +2142,8 @@ message BgpAdvanced { optional string md5_key = 5; } +// Status: {'status': 'under-review', 'additional_information': 'Bgp.Capability is under +// review'} // Configuration for BGP capability settings. message BgpCapability { @@ -2489,6 +2260,8 @@ message BgpCapability { optional bool ipv6_unicast_add_path = 25; } +// Status: {'status': 'under-review', 'additional_information': 'Bgp.LearnedInformationFilter +// is under review'} // Configuration for controlling storage of BGP learned information recieved from the // peer. message BgpLearnedInformationFilter { @@ -2563,36 +2336,6 @@ message BgpV4RouteRange { // objects. // required = true string name = 10; - - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. Note evpn type is defined mainly for use with evpn - // route updates and not for IPv4 and IPv6 route updates. - repeated BgpExtCommunity ext_communities = 11; } // The BGP Additional Paths feature is a BGP extension that allows the advertisement @@ -2664,36 +2407,6 @@ message BgpV6RouteRange { // objects. // required = true string name = 10; - - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. Note evpn type is defined mainly for use with evpn - // route updates and not for IPv4 and IPv6 route updates. - repeated BgpExtCommunity ext_communities = 11; } // Configuration for BGP Segment Routing Traffic Engineering(SRTE) @@ -2765,33 +2478,7 @@ message BgpSrteV4Policy { // Optional Community settings. repeated BgpCommunity communities = 11; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity ext_communities = 12; // List Tunnel Encapsulation Attributes. @@ -2963,6 +2650,8 @@ message BgpSrteExplicitNullLabelPolicySubTlv { optional ExplicitNullLabelPolicy.Enum explicit_null_label_policy = 1; } +// Status: {'status': 'under-review', 'additional_information': 'BgpSrte.SegmentList +// is under review'} // Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV // encodes a single explicit path towards the Endpoint. message BgpSrteSegmentList { @@ -2987,6 +2676,8 @@ message BgpSrteSegmentList { optional bool active = 4; } +// Status: {'status': 'under-review', 'additional_information': 'BgpSrte.Segment is +// under review'} // A Segment sub-TLV describes a single segment in a segment list i.e., a single element // of the explicit path. The Segment sub-TLVs are optional. message BgpSrteSegment { @@ -3144,6 +2835,8 @@ message BgpSrteSegmentBTypeSubTlv { optional BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 3; } +// Status: {'status': 'under-review', 'additional_information': 'BgpSrte.SegmentCTypeSubTlv +// is under review'} // Type C: IPv4 Node Address with optional SID. message BgpSrteSegmentCTypeSubTlv { @@ -3413,33 +3106,7 @@ message BgpSrteV6Policy { // Optional community settings. repeated BgpCommunity communities = 11; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity extcommunities = 12; // List of optional tunnel TLV settings. @@ -3498,38 +3165,6 @@ message BgpSrteV6TunnelTlv { optional bool active = 10; } -// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by -// a BGP speaker to indicate its ability to preserve its forwarding state during BGP -// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent -// between BGP peers. After a BGP session has been established, and the initial routing -// update has been completed, an End-of-RIB (Routing Information Base) marker is sent -// in an UPDATE message to convey information about routing convergence. -message BgpGracefulRestart { - - // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. - // default = False - optional bool enable_gr = 1; - - // This is the estimated duration (in seconds) it will take for the BGP session to be - // re-established after a restart. This can be used to speed up routing convergence - // by its peer in case the BGP speaker does not come back after a restart. - // default = 45 - optional uint32 restart_time = 2; - - // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability - // will be advertised. - // This capability MUST be advertised in conjunction with the Graceful Restart - // capability. - // default = False - optional bool enable_llgr = 3; - - // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) - // may be retained. This is a three byte field and is applicable - // only if 'enable_llgr' is set to 'true'. - // default = 10 - optional uint32 stale_time = 4; -} - // Configuration for BGPv6 peer settings and routes. message BgpV6Peer { @@ -3624,9 +3259,6 @@ message BgpV6Peer { // objects. // required = true string name = 14; - - // Description missing in models - optional BgpGracefulRestart graceful_restart = 15; } // Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. @@ -3646,6 +3278,8 @@ message BgpV6Interface { repeated BgpV6Peer peers = 2; } +// Status: {'status': 'under-review', 'additional_information': 'Bgp.V6SegmentRouting +// is under review'} // Configuration for BGPv6 segment routing settings. message BgpV6SegmentRouting { @@ -3720,33 +3354,7 @@ message BgpV6EthernetSegment { // Optional community settings. repeated BgpCommunity communities = 7; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity ext_communities = 8; // Optional AS PATH settings. @@ -3828,33 +3436,7 @@ message BgpV6EviVxlan { // Optional community settings. repeated BgpCommunity communities = 11; - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. + // Optional Extended Community settings. repeated BgpExtCommunity ext_communities = 12; // Optional AS PATH settings. @@ -4058,499 +3640,6 @@ message VxlanV6TunnelDestinationIPModeMulticast { optional string address = 1; } -// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, -// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related -// specifications. -message DeviceRsvp { - - // List of IPv4 RSVP connected interfaces. At least one interface should be present - // for device connected to the DUT. For unconnected devices, this array must be empty. - repeated RsvpIpv4Interface ipv4_interfaces = 1; - - // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress - // endpoints. - repeated RsvpLspIpv4Interface lsp_ipv4_interfaces = 2; - - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - optional string name = 3; -} - -// Configuration for RSVP Interface. -message RsvpIpv4Interface { - - // The globally unique name of the IPv4 interface connected to the DUT. This name must - // match the name field of the ipv4_addresses on top which this RSVP interface is configured. - // - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - string ipv4_name = 1; - - // IPv4 address of the RSVP neighbor on this interface. - // required = true - string neighbor_ip = 2; - - // The user-defined label space start value. The LSPs for which this router acts as - // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end - // together defines this label-pool. - // default = 1000 - optional int32 label_space_start = 3; - - // The user-defined label space end value.The last label value that can be assigned - // to the LSPs for which this router acts as egress. - // default = 100000 - optional int32 label_space_end = 4; - - // Enables sending of Refresh Reduction as described in RFC2961. - // default = False - optional bool enable_refresh_reduction = 5; - - // The number of seconds between transmissions of successive Summary Refreshes. There - // is no specification specified maximum value. For clarity, setting the maximum to - // 1 hour. - // default = 30 - optional int32 summary_refresh_interval = 6; - - // Enables aggregration of different RSVP messages within a single PDU. - // default = False - optional bool send_bundle = 7; - - // The number of milliseconds to wait after which RSVP will bundle different RSVP messages - // and transmit Bundle messages. - // default = 50 - optional int32 bundle_threshold = 8; - - // Enables sending of Hello Messages as per RFC3209. - // default = False - optional bool enable_hello = 9; - - // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds - // at which successive Hello Messages are sent as per RFC3209. There is no specification - // specified maximum value. For clarity, setting the maximum to 1 hour. - // default = 9 - optional int32 hello_interval = 10; - - // The number of missed hellos after which the node should consider RSVP Neighbor to - // have timed out. There is no specification specified maximum value. Setting the maximum - // allowed value to 10. - // default = 3 - optional int32 timeout_multiplier = 11; -} - -// Configuration for RSVP LSP IPv4 Interface. -message RsvpLspIpv4Interface { - - // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP - // ingress and egress endpoint for the LSPs configured on this interface. This must - // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP - // interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - string ipv4_name = 1; - - // Contains properties of Tail(Egress) LSPs. - optional RsvpLspIpv4InterfaceP2PEgressIpv4Lsp p2p_egress_ipv4_lsps = 2; - - // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. - repeated RsvpLspIpv4InterfaceP2PIngressIpv4Lsp p2p_ingress_ipv4_lsps = 3; -} - -// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. -message RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { - - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - string name = 1; - - // The time in seconds between successive transmissions of RESV Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - optional int32 refresh_interval = 2; - - // The number of missed PATH refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - optional int32 timeout_multiplier = 3; - - message ReservationStyle { - enum Enum { - unspecified = 0; - shared_explicit = 1; - fixed_filter = 2; - auto = 3; - } - } - // It determines how RSVP-TE enabled network devices set up reservations along the path - // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is - // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the - // style is chosen based on the value selected for this attribute. - // default = ReservationStyle.Enum.shared_explicit - optional ReservationStyle.Enum reservation_style = 4; - - // If enabled, a specific fixed label will be advertised by the egress or tail end for - // all Path messages received by this egress. This can be leveraged to advertise Explicit - // or Implicit null labels. - // default = False - optional bool enable_fixed_label = 5; - - // The fixed label value as advertised by egress in RESV message. Applicable only if - // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - - // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected - // to have a minimum value of 16. - // default = 0 - optional int32 fixed_label_value = 6; -} - -// Configuration for an RSVP Ingress point-to-point LSP. -message RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { - - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - string name = 1; - - // IPv4 address of the remote endpoint of the LSP. - // required = true - string remote_address = 2; - - // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. - // default = 1 - optional int32 tunnel_id = 3; - - // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. - // default = 1 - optional int32 lsp_id = 4; - - // The time in seconds between successive transmissions of PATH Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - optional int32 refresh_interval = 5; - - // The number of missed RESV refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - optional int32 timeout_multiplier = 6; - - // The LSP id that will be used when creating a Make-Before-Break LSP when the active - // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is - // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. - // default = 2 - optional int32 backup_lsp_id = 7; - - // The amount of delay in milliseconds that an implementation should wait for before - // switching traffic to the new LSP created after a Make-Before-Break is done on an - // LSP. The default value is 0 which means to switch immediately. An implementation - // should support a minimum delay value of at least 50ms . There is no specification - // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value - // is supplied which is lesser than the minimum delay value supported, a warning should - // be provided indicating that the minimum value of LSP switchover delay is automatically - // increased to the supported minimum value. This warning should be included in the - // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' - // Response. - // default = 0 - optional int32 lsp_switchover_delay = 8; - - // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object - // in the Path Message sent for the LSP. - optional RsvpSessionAttribute session_attribute = 9; - - // This contains the values of the fields to be included in the TSPEC object in the - // Path Message sent for the LSP. - optional RsvpTspec tspec = 10; - - // This contains the values of the fields to be included in the FAST_REROUTE object - // in the Path Message sent for the LSP. - // This is an optional object . If this attribute is not included , the FAST_REROUTE - // object will not be included. - optional RsvpFastReroute fast_reroute = 11; - - // This contains the values of the fields to be included in the ERO object in the Path - // Message sent for the LSP. - // This is an optional object . If this attribute is not included , the ERO object will - // not be included. - optional RsvpEro ero = 12; -} - -// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined -// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are -// defined in RFC4090 (Fast Reroute). -message RsvpSessionAttribute { - - // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE - // object in the Path Message for this LSP. - // default = True - optional bool auto_generate_session_name = 1; - - // If auto_generate_session_name is set to 'false', then the value of this field is - // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message - // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP - // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. - // The maximum length of session name is 254 bytes. - optional string session_name = 2; - - // Specifies the value of the Setup Priority field. This controls whether the LSP should - // pre-empt existing LSP setup with certain Holding Priority if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - optional int32 setup_priority = 3; - - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - optional int32 holding_priority = 4; - - // This flag permits transit routers to use a local repair mechanism which may result - // in violation of the explicit route object. When a fault is detected on an adjacent - // downstream link or node, a transit router can reroute traffic for fast service restoration. - // default = False - optional bool local_protection_desired = 5; - - // This flag indicates that label information should be included when doing a route - // record. - // default = False - optional bool label_recording_desired = 6; - - // This flag indicates that the tunnel ingress node may choose to reroute this tunnel - // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) - // Style when responding with a Resv message. - // default = False - optional bool se_style_desired = 7; - - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along the protected LSP path that a backup path with a bandwidth guarantee is desired. - // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object - // is included in the PATH message. If a FAST_REROUTE object is present in the Path - // message, then the bandwidth specified therein is to be guaranteed. - // default = False - optional bool bandwidth_protection_desired = 8; - - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along a protected LSP path that it is desired to have a backup path that bypasses - // at least the next node of the protected LSP. - // default = False - optional bool node_protection_desired = 9; - - // This is an optional object. If included the extended SESSION_ATTRIBUTE object is - // sent in the Path message containing - // the additional fields included in this object. This contains a set of three bitmaps - // using which further constraints can be - // set on the path calculated for the LSP based on the Admin Group settings in the IGP - // (e.g ISIS or OSPF interface). - optional RsvpResourceAffinities resource_affinities = 10; -} - -// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is -// sent in the Path message containing -// the additional fields included in this object. This contains a set of three bitmaps -// using which further constraints can be -// set on the path calculated for the LSP based on the Admin Group settings in the IGP -// (e.g ISIS or OSPF interface). -message RsvpResourceAffinities { - - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - optional string exclude_any = 1; - - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - optional string include_any = 2; - - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - optional string include_all = 3; -} - -// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these -// parameters is defined in RFC2215. -message RsvpTspec { - - // The rate of the traffic to be carried in this LSP in bytes per second. This is part - // of the Token Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - optional float token_bucket_rate = 1; - - // The depth of the token bucket in bytes used to specify the Token Bucket characteristics - // of the traffic to be carried in the LSP. This is part of the Token Bucket specification - // defined for a traffic flow defined in RFC2215. - // default = 0 - optional float token_bucket_size = 2; - - // The peak data rate of the traffic in bytes per second used to specify the Token Bucket - // characteristics of the traffic to be carried in the LSP. This is part of the Token - // Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - optional float peak_data_rate = 3; - - // Specifies the minium length of packet frames that will be policed. - // default = 0 - optional int32 minimum_policed_unit = 4; - - // Specifies the maximum length of packet frames that will be policed. - // default = 0 - optional int32 maximum_policed_unit = 5; -} - -// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages -// as defined in RFC4090. -message RsvpFastReroute { - - // Specifies the value of the Setup Priority field. This controls whether the backup - // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While - // setting up a backup LSP, preemption of existing LSP can happen if resource limitation - // is encountered (e.g bandwidth availability). - // default = 7 - optional int32 setup_priority = 1; - - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP set up with this - // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen - // if resource limitation is encountered (e.g bandwidth availability). - // default = 7 - optional int32 holding_priority = 2; - - // Specifies the value of the Hop Limit field. This controls the maximum number of hops - // the LSP should traverse to reach the LSP end-point. - // default = 3 - optional int32 hop_limit = 3; - - // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, - // in bytes per second, as desired for the LSP. - // default = 0 - optional float bandwidth = 4; - - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - optional string exclude_any = 5; - - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - optional string include_any = 6; - - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - optional string include_all = 7; - - // Requests protection via the one-to-one backup method. - // default = False - optional bool one_to_one_backup_desired = 8; - - // Requests protection via the facility backup method. - // default = False - optional bool facility_backup_desired = 9; -} - -// Configuration for the optional RSVP-TE explicit route object(ERO) object included -// in Path Messages. -message RsvpEro { - - message PrependNeighborIp { - enum Enum { - unspecified = 0; - dont_prepend = 1; - prepend_loose = 2; - prepend_strict = 3; - } - } - // Determines whether the IP address of the RSVP neighbor should be added as an ERO - // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict - // hop. - // default = PrependNeighborIp.Enum.prepend_loose - optional PrependNeighborIp.Enum prepend_neighbor_ip = 1; - - // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set - // this value as the prefix length of the ERO sub-object containing egress IP address. - // - // default = 32 - optional int32 prefix_length = 2; - - // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate - // hops to be traversed by the LSP while being forwarded towards the egress endpoint. - // These sub-objects are included after the optional sub-object containing IP address - // of egress endpoint of the LSP (when present). - repeated RsvpEroSubobject subobjects = 3; -} - -// Configuration for the ERO sub-object. -message RsvpEroSubobject { - - message Type { - enum Enum { - unspecified = 0; - ipv4 = 1; - as_number = 2; - } - } - // The type of the ERO sub-object, one of IPv4 Address or AS Number. - // default = Type.Enum.ipv4 - optional Type.Enum type = 1; - - // IPv4 address that this LSP should traverse through. This field is applicable only - // if the value of 'type' is set to 'ipv4'. - // default = 0.0.0.0 - optional string ipv4_address = 2; - - // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable - // only if the value of 'type' is set to 'ipv4'. - // default = 32 - optional int32 prefix_length = 3; - - // Autonomous System number to be set in the ERO sub-object that this LSP should traverse - // through. This field is applicable only if the value of 'type' is set to 'as_number'. - // Note that as per RFC3209, 4-byte AS encoding is not supported. - // default = 0 - optional int32 as_number = 4; - - message HopType { - enum Enum { - unspecified = 0; - strict = 1; - loose = 2; - } - } - // The hop type of the ERO sub-object, one of Strict or Loose. - // default = HopType.Enum.loose - optional HopType.Enum hop_type = 5; -} - // A high level data plane traffic flow. message Flow { @@ -4651,46 +3740,17 @@ message FlowRouter { one_to_one = 2; } } - // Determines the intent of creating traffic sub-flow(s) between the device - // endpoints, from the entities of tx_names to the entities of rx_names + // Determines the mapping of tx_names to rx_names. // - // to derive how auto packet fields can be populated with - // the actual value(s) by the implementation. + // The mesh mode creates traffic between each value in tx_names to + // every value in rx_names except in the case where the individual + // tx_names value is equal to rx_names value which will be ignored. + // Identical values in tx_names or rx_names MUST raise an error. // - // The one_to_one mode creates traffic sub-flow(s) between each device endpoint - // pair in - // tx_names to rx_names by index. - // The length of tx_names and rx_names MUST be the same. - // The same device name can be repeated multiple times in tx_names or rx_names, in any - // order to create desired meshing between device(s). - // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would - // be generated (each pair representing a traffic sub-flow). - // - // The mesh mode creates traffic sub-flow(s) between each value in tx_names to - // every value in rx_names, forming the device endpoint pair(s). - // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs - // would be 2x3=6. - // - // A generated device endpoint pair with same device endpoint name for both transmit - // & receive device endpoint MUST raise an error. - // - // Packet fields of type auto would be populated with one value for each device - // endpoint pair (representing the traffic sub-flow). - // The value would be determined considering transmit & receive device of the sub-flow. - // And the sequence of the populated value(s) - // would be in the order of generated device endpoint pair(s). - // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), - // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then - // the auto field would be replaced by the implementation with a sequence of - // 2 values, [v1,v2] where - // v1 is determined using context (d1,d3) and v2 using context (d2,d3). - // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... - // for ethernet.dst field. Any non-auto packet fields - // should be configured accordingly. For example, non-auto packet field ethernet.src - // can be configured with values [u1, u2], where - // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. - // Then packets on the wire will contain correct value pairs - // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. + // The one_to_one mode creates traffic between each value pair in + // of tx_names and rx_names by index. + // The length of tx_names and rx_name MUST be the same. + // Identical values in tx_names or rx_names MUST raise an error. // default = Mode.Enum.mesh optional Mode.Enum mode = 1; @@ -4703,9 +3763,6 @@ message FlowRouter { // - /components/schemas/Bgp.V4RouteRange/properties/name // - /components/schemas/Bgp.V6RouteRange/properties/name // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name // repeated string tx_names = 2; @@ -4718,9 +3775,6 @@ message FlowRouter { // - /components/schemas/Bgp.V4RouteRange/properties/name // - /components/schemas/Bgp.V6RouteRange/properties/name // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name // repeated string rx_names = 3; } @@ -5794,331 +4848,437 @@ message EventSubscription { // the events property. // If this property is empty or null then no event notifications will // be forwarded. - optional string callback_url = 2; + optional string callbackurl = 2; } -// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf -message Lldp { +// A container for emulated TCP/UDP , application protocols, attacks and it's traffic +// configurations. +message App { - // The unique name of the object on which LLDP is running. - // required = true - LldpConnection connection = 1; - - // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint - // identifier associated with the transmitting LLDP agent. If mac address is specified - // it should be in colon seperated mac address format. - optional LldpChassisId chassis_id = 2; - - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - optional LldpPortId port_id = 3; - - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - optional LldpSystemName system_name = 4; - - // Specifies the amount of time in seconds a receiving device should maintain LLDP information - // sent by the device before discarding it. - // default = 120 - optional int32 hold_time = 5; - - // Set the transmission frequency of LLDP updates in seconds. - // default = 30 - optional int32 advertisement_interval = 6; + // The properties of TCP and its children, + repeated AppTcp tcp = 1; - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - string name = 7; + // The properties of HTTP client, + repeated AppHttpClient http_client = 2; + + // The properties of HTTP server, + repeated AppHttpServer http_server = 3; + + // SSL configuration + repeated AppSsl ssl = 4; + + // Traffic configuration of endpoints. + repeated StatefulFlow stateful_flows = 5; + + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + string name = 6; } -// LLDP connection to a test port. In future if more connection options arise LLDP -// connection object will be enhanced. -message LldpConnection { +// The properties of TCP Configurations. +message AppTcp { - message Choice { - enum Enum { - unspecified = 0; - port_name = 1; - } - } - // The name of the test port or other connection objects on which LLDP is configured. - optional Choice.Enum choice = 1; + // If a link has no activity on it for the time specified, keep-alive probes are sent + // to determine if the link is still up. The Keep-alive Time value is expressed in seconds. + // default = 7200 + optional float keep_alive_time = 1; - // Name of the test port on which LLDP is configured on. + // Number of keep-alive probes sent out before determining that a link is down. + // default = 9 + optional float keep_alive_probes = 2; + + // The number of seconds between repeated keep-alive probes. + // default = 75 + optional float keep_alive_interval = 3; + + // The TCP read buffer size. + // default = 4096 + optional int32 receive_buffer_size = 4; + + // The TCP write buffer size. + // default = 4096 + optional int32 transmit_buffer_size = 5; + + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + optional string name = 6; +} + +// Configurations of one or more HTTP client. +message AppHttpClient { + + // Description missing in models + optional HttpClientClient client = 1; +} + +// One or more HTTP Client configurations and its HTTP methods configs. +message HttpClientClient { + + // Transport interface that can be attached to TCP. In the same apps or different apps + // container. // // x-constraint: - // - /components/schemas/Port/properties/name + // - /components/schemas/App.Tcp/properties/name // - optional string port_name = 2; -} - -// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint -// identifier associated with the transmitting LLDP agent. This field identifies the -// format and source of the chassis identifier string. It is based on the enumerator -// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. -message LldpChassisId { + optional string transport_name = 1; - message Choice { + message HttpVersion { enum Enum { unspecified = 0; - mac_address_subtype = 1; - interface_name_subtype = 2; - local_subtype = 3; + v10 = 1; + v11 = 2; + v20 = 3; } } - // Chassis ID subtype to be used in Chassis ID TLV. - // default = Choice.Enum.mac_address_subtype - optional Choice.Enum choice = 1; + // HTTP Version + // default = HttpVersion.Enum.v10 + optional HttpVersion.Enum http_version = 2; - // Description missing in models - optional LldpChassisMacSubType mac_address_subtype = 2; + // cookie_jar_size the number of cookies that will be saved for each client. The maximum + // value of this is 300. (only if enable_cookie_support is enabled) + // default = 10 + optional int32 cookie_jar_size = 3; + + // cookie_reject_probability indicates the probability, from 0 or 1, that a client will + // reject a request for a cookie(s) contents from the server. (only if enable_cookie_support + // is enabled) + // default = 0 + optional bool cookie_reject_probability = 4; - // Name of an interface of the chassis that uniquely identifies the chassis. - optional string interface_name_subtype = 3; + // The client will support cookie retention, as indicated in the cookie_jar_size and + // cookie_reject_probability + // default = False + optional bool enable_cookie_support = 5; + + // HTTP command timeout timer in seconds + // default = 600 + optional float command_timeout = 6; + + // The HTTP methods such as GET, POST and its properties. + repeated HttpMethod methods = 10; - // Locally assigned name of the chassis. - optional string local_subtype = 4; + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + optional string name = 11; } -// The Port ID is a mandatory TLV which identifies the port component of the endpoint -// identifier associated with the transmitting LLDP agent.This field identifies the -// format and source of the port identifier string. It is based on the enumerator defined -// by the PtopoPortIdType object from RFC2922. -message LldpPortId { +// Description missing in models +message HttpMethod { message Choice { enum Enum { unspecified = 0; - mac_address_subtype = 1; - interface_name_subtype = 2; - local_subtype = 3; + get = 1; + post = 2; } } - // Port ID subtype to be used in Port ID TLV. - // default = Choice.Enum.interface_name_subtype + // Description missing in models + // default = Choice.Enum.get optional Choice.Enum choice = 1; - // The MAC Address configured in the Port ID TLV. - optional string mac_address_subtype = 2; + // Description missing in models + optional MethodGet get = 2; // Description missing in models - optional LldpPortInterfaceNameSubType interface_name_subtype = 3; + optional MethodPost post = 3; +} + +// A GET operation of HTTP client. Retrieves the page from the HTTP Server. +message MethodGet { + + // Server name/IP address + // required = true + string server = 1; - // The Locally assigned name configured in the Port ID TLV. - optional string local_subtype = 4; + // The page url/name to perform HTTP GET operation. + // required = true + string page = 2; } -// The MAC address configured in the Chassis ID TLV. -message LldpChassisMacSubType { +// A POST operation of HTTP client. To post the data on HTTP Server. +message MethodPost { - message Choice { - enum Enum { - unspecified = 0; - auto = 1; - value = 2; - } - } - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - optional Choice.Enum choice = 1; + // Server name/IP address + // required = true + string server = 1; - // The OTG implementation must provide a system generated value for this property. - optional string auto = 2; + // The page url/name to perform HTTP POST operation. + // required = true + string page = 2; +} - // User must specify a value if mode is not auto. - optional string value = 3; +// Configurations of one or more HTTP server. +message AppHttpServer { + + // Description missing in models + optional HttpServerServer server = 1; } -// The interface name configured in the Port ID TLV. -message LldpPortInterfaceNameSubType { +// One or more HTTP Server configurations. +message HttpServerServer { - message Choice { + // Transport interface that can be attached to TCP. In the same apps or different apps + // container. + // + // x-constraint: + // - /components/schemas/App.Tcp/properties/name + // + optional string transport_name = 1; + + message HttpVersion { enum Enum { unspecified = 0; - auto = 1; - value = 2; + v10 = 1; + v11 = 2; + v20 = 3; } } - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - optional Choice.Enum choice = 1; + // HTTP Version + // default = HttpVersion.Enum.v10 + optional HttpVersion.Enum http_version = 2; - // The OTG implementation must provide a system generated value for this property. - optional string auto = 2; + // The port number to which the HTTP server will respond to non-SSL requests. + // default = 80 + optional int32 http_port = 3; - // User must specify a value if mode is not auto. - optional string value = 3; + // The number of seconds that the server will wait for input on an open connection before + // closing the session with a 408 error. + // default = 300 + optional int32 request_timeout = 4; } -// The system Name configured in the System Name TLV. -message LldpSystemName { +// SSL configuration . +message AppSsl { - message Choice { - enum Enum { - unspecified = 0; - auto = 1; - value = 2; - } - } - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - optional Choice.Enum choice = 1; + // Enable SSL for HTTP + // default = False + optional bool enable = 1; +} - // The OTG implementation must provide a system generated value for this property. - optional string auto = 2; +// Statefull_flows configure traffic for emulated protocols which is configured in apps. +// +message StatefulFlow { - // User must specify a value if mode is not auto. - optional string value = 3; + // Description missing in models + optional StatefulFlowClient client = 1; + + // Description missing in models + optional StatefulFlowServer server = 2; + + // Description missing in models + optional StatefulFlowObjective objectives = 3; } -// A list of errors that may have occurred while executing the request. -message ResponseError { +// Client traffic configs. +message StatefulFlowClient { - // A list of any system specific errors that have occurred while - // executing the request. - repeated string errors = 1; + // EndPoint configuration for one or more emulated apps. + repeated EndpointsClient endpoints = 1; + + // Protocol to use for test, such as HTTP, TCP + // + // x-constraint: + // - /components/schemas/App.Tcp/properties/name + // - /components/schemas/App.Http/properties/name + // + optional string protocol = 2; } -// A list of warnings that have occurred while executing the request. -message ResponseWarning { +// Endpoint configs for Client. +message EndpointsClient { - // A list of any system specific warnings that have occurred while - // executing the request. - repeated string warnings = 1; + // IPv4/v6 interface name, which is configured in devices. + // + // x-constraint: + // - /components/schemas/Device.Ipv4Base/properties/name + // - /components/schemas/Device.Ipv6Base/properties/name + // + optional string ip_interface_name = 1; + + // Description missing in models + optional PatternEndpointsClientPorts ports = 2; } -// Request for updating specific attributes of resources in traffic generator -message ConfigUpdate { +// Endpoint configs for Server. +message EndpointsServer { + + // Description missing in models + optional EndpointsDest dest = 1; + + // Description missing in models + optional PatternEndpointsServerPorts ports = 2; +} + +// Endpoint destination config for server. +message EndpointsDest { message Choice { enum Enum { unspecified = 0; - flows = 1; + name = 1; + ipv4_address = 2; + ipv6_address = 3; } } // Description missing in models + // default = Choice.Enum.name optional Choice.Enum choice = 1; - // Description missing in models - optional FlowsUpdate flows = 2; + // IPv4/v6 interface name + // + // x-constraint: + // - /components/schemas/Device.Ipv4Base/properties/name + // - /components/schemas/Device.Ipv6Base/properties/name + // + optional string name = 2; + + // IPv4 address of the server with prefix length of 32. + optional string ipv4_address = 3; + + // IPv6 address of the server with prefix length of 128. + optional string ipv6_address = 4; } -// A container of flows with associated properties to be updated without affecting the -// flows current transmit state. -message FlowsUpdate { +// Traffic configuration for server(s). +message StatefulFlowServer { - message PropertyNames { - enum Enum { - unspecified = 0; - rate = 1; - size = 2; - } - } - // Flow properties to be updated without affecting the transmit state. - repeated PropertyNames.Enum property_names = 1; + // EndPoint configuration for one or more emulated apps. + repeated EndpointsServer endpoints = 1; - // The list of configured flows for which given property will be updated. - repeated Flow flows = 2; + // Protocol to use for test, such as HTTP, TCP + // + // x-constraint: + // - /components/schemas/App.Tcp/properties/name + // - /components/schemas/App.Http/properties/name + // + optional string protocol = 2; } -// Request for setting operational state of configured resources. -message ControlState { +// objective config such simulated user, thoughput, conncurrent connections. +message StatefulFlowObjective { message Choice { enum Enum { unspecified = 0; - port = 1; - protocol = 2; - traffic = 3; + simulated_user = 1; + throughput = 2; + concurrent_connections = 3; } } // Description missing in models - // required = true - Choice.Enum choice = 1; + // default = Choice.Enum.throughput + optional Choice.Enum choice = 1; // Description missing in models - optional StatePort port = 2; + optional ObjectiveSimulatedUser simulated_user = 2; // Description missing in models - optional StateProtocol protocol = 3; + optional ObjectiveThroughput throughput = 3; // Description missing in models - optional StateTraffic traffic = 4; + optional ObjectiveConnectionConncurrent concurrent_connections = 4; } -// States associated with configured ports. -message StatePort { +// simulated user traffic +message ObjectiveSimulatedUser { - message Choice { + // Number of simulated user. + // required = true + int32 value = 1; + + message RampUpType { enum Enum { unspecified = 0; - link = 1; - capture = 2; + users_intervals = 1; + max_pending_user = 2; + immediate = 3; } } - // Description missing in models - // required = true - Choice.Enum choice = 1; + // Ramp up type to defines the type of user execution profiles during the ramp_up_time, + // . + // default = RampUpType.Enum.users_intervals + optional RampUpType.Enum ramp_up_type = 2; - // Description missing in models - optional StatePortLink link = 2; + // Value applied to ramp_up_type to either bring up users at a certain rate. + optional int32 ramp_up_value = 3; - // Description missing in models - optional StatePortCapture capture = 3; + // Amount of time when all users are up and performing the central test objectives, + // such as retrieving or serving pages. + optional int32 sustain_time = 4; + + // Amount of seconds used for closing any connections that are still open after all + // transactions are complete. + optional int32 ramp_down_time = 5; } -// States associated with configured flows -message StateTraffic { +// Throughput traffic +message ObjectiveThroughput { message Choice { enum Enum { unspecified = 0; - flow_transmit = 1; + value = 1; + max_throughput = 2; } } + // The throughput test value or max throughput . + // default = Choice.Enum.max_throughput + optional Choice.Enum choice = 1; + // Description missing in models - // required = true - Choice.Enum choice = 1; + optional int32 value = 2; // Description missing in models - optional StateTrafficFlowTransmit flow_transmit = 2; + // default = 0 + optional bool max_throughput = 3; + + // Amount of seconds when all users are up and performing the central test objectives, + // such as retrieving or serving pages. + optional float sustain_time = 4; + + // Amount of seconds used for closing any connections that are still open after all + // transactions are complete. + optional float ramp_down_time = 5; } -// States associated with protocols on configured resources. -message StateProtocol { +// Conncurrent connections objectives +message ObjectiveConnectionConncurrent { - message Choice { - enum Enum { - unspecified = 0; - all = 1; - route = 2; - lacp = 3; - } - } - // Description missing in models + // Throughput value. // required = true - Choice.Enum choice = 1; + int32 value = 1; - // Description missing in models - optional StateProtocolAll all = 2; + // Amount of seconds when all users are up and performing the central test objectives, + // such as retrieving or serving pages. + optional float sustain_time = 2; - // Description missing in models - optional StateProtocolRoute route = 3; + // Amount of seconds used for closing any connections that are still open after all + // transactions are complete. + optional float ramp_down_time = 3; - // Description missing in models - optional StateProtocolLacp lacp = 4; + // Amount of seconds used for closing any connections that are still open after all + // transactions are complete. + optional float ramp_down_value = 4; } -// Deprecated: Please use `StatePortLink` instead -// -// Sets the link state of configured ports. +// A list of errors that may have occurred while executing the request. +message ResponseError { + + // A list of any system specific errors that have occurred while + // executing the request. + repeated string errors = 1; +} + +// A list of warnings that have occurred while executing the request. +message ResponseWarning { + + // A list of any system specific warnings that have occurred while + // executing the request. + repeated string warnings = 1; +} + +// Port link state. message LinkState { // The names of port objects to. An empty or null list will control all port objects. @@ -6140,8 +5300,6 @@ message LinkState { State.Enum state = 2; } -// Deprecated: Please use `StateTrafficFlowTransmit` instead -// // Flow transmit state. message TransmitState { @@ -6180,668 +5338,111 @@ message TransmitState { State.Enum state = 2; } -// Deprecated: Please use `StatePortCapture` instead -// // Control port capture state message CaptureState { - // The names of ports to which the capture state will be applied to. If the list of - // port_names is empty or null the state will be applied to all configured ports. - // If the list is not empty any port that is not included in the list of port_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - repeated string port_names = 1; - - message State { - enum Enum { - unspecified = 0; - start = 1; - stop = 2; - } - } - // The capture state. - // required = true - State.Enum state = 2; -} - -// Deprecated: Please use `StateProtocolRoute` instead -// -// Sets the device route state -message RouteState { - - // The names of device route objects to control. If no names are specified then all - // route objects that match the x-constraint will be affected. - // - // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - repeated string names = 1; - - message State { - enum Enum { - unspecified = 0; - withdraw = 1; - advertise = 2; - } - } - // Route specific states - // required = true - State.Enum state = 2; -} - -// Deprecated: Please use `StateProtocolAll` instead -// -// Sets all configured protocols to `start` or `stop` state. Setting protocol state -// to `start` shall be a no-op if preceding `set_config` API call was made with `config.options.protocol_options.auto_start_all` -// set to `true` or if all the configured protocols are already started. -message ProtocolState { - - message State { - enum Enum { - unspecified = 0; - start = 1; - stop = 2; - } - } - // Protocol specific states - // required = true - State.Enum state = 1; -} - -// Deprecated: Please use `State.Protocol` instead -// -// Sets attributes for the requested state/actions to be performed on device(s) -message DeviceState { - - message Choice { - enum Enum { - unspecified = 0; - lacp_member_state = 1; - } - } - // Description missing in models - optional Choice.Enum choice = 1; - - // Description missing in models - optional LacpMemberState lacp_member_state = 2; -} - -// Sets the link of configured ports. -message StatePortLink { - - // The names of target ports. An empty or null list will target all ports. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - repeated string port_names = 1; - - message State { - enum Enum { - unspecified = 0; - up = 1; - down = 2; - } - } - // The link state. - // required = true - State.Enum state = 2; -} - -// Sets the capture state of configured ports -message StatePortCapture { - - // The names of ports to which the capture state will be applied to. If the list of - // port_names is empty or null the state will be applied to all configured ports. - // If the list is not empty any port that is not included in the list of port_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - repeated string port_names = 1; - - message State { - enum Enum { - unspecified = 0; - start = 1; - stop = 2; - } - } - // The capture state. - // required = true - State.Enum state = 2; -} - -// Provides state control of flow transmission. -message StateTrafficFlowTransmit { - - // The names of flows to which the transmit state will be applied to. If the list of - // flow_names is empty or null the state will be applied to all configured flows. - // If the list is not empty any flow that is not included in the list of flow_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Flow/properties/name - // - repeated string flow_names = 1; - - message State { - enum Enum { - unspecified = 0; - start = 1; - stop = 2; - pause = 3; - resume = 4; - } - } - // The transmit state. - // If the value of the state property is 'start' then all flows defined by the 'flow_names' - // property will be started and the metric counters MUST be cleared prior to starting - // the flow(s). - // If the value of the state property is 'stop' then all flows defined by the 'flow_names' - // property will be stopped and the metric counters MUST NOT be cleared. - // If the value of the state property is 'pause' then all flows defined by the 'flow_names' - // property will be paused and the metric counters MUST NOT be cleared. - // If the value of the state property is 'resume' then any paused flows defined by the - // 'flow_names' property will start transmit at the point at which they were paused. - // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) - // MUST NOT have their metric counters cleared. - optional State.Enum state = 2; -} - -// Sets all configured protocols to `start` or `stop` state. -// Setting protocol state to `start` shall be a no-op if preceding `set_config` API -// call was made with `config.options.protocol_options.auto_start_all` set to `true` -// or if all the configured protocols are already started. -message StateProtocolAll { - - message State { - enum Enum { - unspecified = 0; - start = 1; - stop = 2; - } - } - // Protocol states - // required = true - State.Enum state = 1; -} - -// Sets the state of configured routes -message StateProtocolRoute { - - // The names of device route objects to control. If no names are specified then all - // route objects that match the x-constraint will be affected. - // - // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - repeated string names = 1; - - message State { - enum Enum { - unspecified = 0; - withdraw = 1; - advertise = 2; - } - } - // Route states - // required = true - State.Enum state = 2; -} - -// Sets state of configured LACP -message StateProtocolLacp { - - message Choice { - enum Enum { - unspecified = 0; - admin = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional StateProtocolLacpAdmin admin = 2; -} - -// Sets admin state of LACP configured on LAG members -message StateProtocolLacpAdmin { - - // The names of LAG members (ports) for which the state has to be applied. An empty - // or null list will control all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - repeated string lag_member_names = 1; - - message State { - enum Enum { - unspecified = 0; - up = 1; - down = 2; - } - } - // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected - // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member - // ports. - optional State.Enum state = 2; -} - -// Deprecated: Please use `StateProtocolLacpAdmin` instead -// -// Set LACP state for specified LAG Member Port(s). -message LacpMemberState { - - // The names of LAG members (ports) for which the state has to be applied. An empty - // or null list will control all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - repeated string lag_member_port_names = 1; - - message State { - enum Enum { - unspecified = 0; - up = 1; - down = 2; - } - } - // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected - // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member - // ports. - // required = true - State.Enum state = 2; -} - -// Request for triggering action against configured resources. -message ControlAction { - - message Choice { - enum Enum { - unspecified = 0; - protocol = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionProtocol protocol = 2; -} - -// Response for action triggered against configured resources along with warnings. -message ControlActionResponse { - - // List of warnings generated while triggering specified action - repeated string warnings = 1; - - // Description missing in models - optional ActionResponse response = 2; -} - -// Response for action triggered against configured resources. -message ActionResponse { - - message Choice { - enum Enum { - unspecified = 0; - protocol = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionResponseProtocol protocol = 2; -} - -// Actions associated with protocols on configured resources. -message ActionProtocol { - - message Choice { - enum Enum { - unspecified = 0; - ipv4 = 1; - ipv6 = 2; - bgp = 3; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionProtocolIpv4 ipv4 = 2; - - // Description missing in models - optional ActionProtocolIpv6 ipv6 = 3; - - // Description missing in models - optional ActionProtocolBgp bgp = 4; -} - -// Response for actions associated with protocols on configured resources. -message ActionResponseProtocol { - - message Choice { - enum Enum { - unspecified = 0; - ipv4 = 1; - ipv6 = 2; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionResponseProtocolIpv4 ipv4 = 2; - - // Description missing in models - optional ActionResponseProtocolIpv6 ipv6 = 3; -} - -// Actions associated with IPv4 on configured resources. -message ActionProtocolIpv4 { - - message Choice { - enum Enum { - unspecified = 0; - ping = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionProtocolIpv4Ping ping = 2; -} - -// Response for actions associated with IPv4 on configured resources. -message ActionResponseProtocolIpv4 { - - message Choice { - enum Enum { - unspecified = 0; - ping = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionResponseProtocolIpv4Ping ping = 2; -} - -// Request for initiating ping between multiple source and destination pairs. -message ActionProtocolIpv4Ping { - - // List of IPv4 ping requests. - repeated ActionProtocolIpv4PingRequest requests = 1; -} - -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -message ActionProtocolIpv4PingRequest { - - // Name of source IPv4 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - optional string src_name = 1; - - // Destination IPv4 address to ping. - optional string dst_ip = 2; -} - -// Response for ping initiated between multiple source and destination pairs. -message ActionResponseProtocolIpv4Ping { - - // List of responses for IPv4 ping responses. - repeated ActionResponseProtocolIpv4PingResponse responses = 1; -} - -// Response for ping initiated between a single source and destination pair. -message ActionResponseProtocolIpv4PingResponse { - - // Name of source IPv4 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - string src_name = 1; - - // Destination IPv4 address used for ping. - // required = true - string dst_ip = 2; - - message Result { - enum Enum { - unspecified = 0; - succeeded = 1; - failed = 2; - } - } - // Result of the ping request. - // required = true - Result.Enum result = 3; -} - -// Actions associated with IPv6 on configured resources. -message ActionProtocolIpv6 { - - message Choice { - enum Enum { - unspecified = 0; - ping = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionProtocolIpv6Ping ping = 2; -} - -// Response for actions associated with IPv6 on configured resources. -message ActionResponseProtocolIpv6 { - - message Choice { - enum Enum { - unspecified = 0; - ping = 1; - } - } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionResponseProtocolIpv6Ping ping = 2; -} - -// Request for initiating ping between multiple source and destination pairs. -message ActionProtocolIpv6Ping { - - // List of IPv6 ping requests. - repeated ActionProtocolIpv6PingRequest requests = 1; -} - -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -message ActionProtocolIpv6PingRequest { - - // Name of source IPv6 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - optional string src_name = 1; - - // Destination IPv6 address to ping. - optional string dst_ip = 2; -} - -// Response for ping initiated between multiple source and destination pairs. -message ActionResponseProtocolIpv6Ping { - - // List of responses for IPv6 ping responses. - repeated ActionResponseProtocolIpv6PingResponse responses = 1; -} - -// Response for ping initiated between a single source and destination pair. -message ActionResponseProtocolIpv6PingResponse { - - // Name of source IPv6 interface used for ping. + // The names of ports to which the capture state will be applied to. If the list of + // port_names is empty or null the state will be applied to all configured ports. + // If the list is not empty any port that is not included in the list of port_names + // MUST be ignored and not included in the state change. // // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Port/properties/name // - // required = true - string src_name = 1; - - // Destination IPv6 address used for ping. - // required = true - string dst_ip = 2; + repeated string port_names = 1; - message Result { + message State { enum Enum { unspecified = 0; - succeeded = 1; - failed = 2; + start = 1; + stop = 2; } } - // Result of the ping request. + // The capture state. // required = true - Result.Enum result = 3; + State.Enum state = 2; } -// Actions associated with BGP on configured resources. -message ActionProtocolBgp { +// A container of flows with associated properties to be updated without affecting the +// flows current transmit state. +message FlowsUpdate { - message Choice { + message PropertyNames { enum Enum { unspecified = 0; - notification = 1; - initiate_graceful_restart = 2; + rate = 1; + size = 2; } } - // Description missing in models - // required = true - Choice.Enum choice = 1; - - // Description missing in models - optional ActionProtocolBgpNotification notification = 2; + // Flow properties to be updated without affecting the transmit state. + repeated PropertyNames.Enum property_names = 1; - // Description missing in models - optional ActionProtocolBgpInitiateGracefulRestart initiate_graceful_restart = 3; + // The list of configured flows for which given property will be updated. + repeated Flow flows = 2; } -// A NOTIFICATION message is sent when an error is detected with the BGP session, such -// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. -// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of -// specified BGP peers. If a user wants to send custom Error Code and Error Subcode -// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs -// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. -// -message ActionProtocolBgpNotification { +// Sets the device route state +message RouteState { - // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION - // will be sent to all configured BGP peers. + // The names of device route objects to control. If no names are specified then all + // route objects that match the x-constraint will be affected. // // x-constraint: - // - /components/schemas/Device.Bgp/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name // repeated string names = 1; - message Choice { + message State { enum Enum { unspecified = 0; - cease = 1; - message_header_error = 2; - open_message_error = 3; - update_message_error = 4; - hold_timer_expired = 5; - finite_state_machine_error = 6; - custom = 7; + withdraw = 1; + advertise = 2; } } - // Each BGP NOTIFICATION message includes an Error Code field indicating what type of - // problem occurred. For certain Error Codes, an Error Subcode field provides additional - // details about the specific nature of the problem. The choice value will provide - // the Error Code used in NOTIFICATION message. The Subcode can be set for each of - // the corresponding errors except for Hold Timer Expired error and BGP Finite State - // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to - // use non zero Sub Code then custom choice can be used. - // default = Choice.Enum.cease - optional Choice.Enum choice = 2; + // Route specific states + // required = true + State.Enum state = 2; +} - // Description missing in models - optional DeviceBgpCeaseError cease = 3; +// Ping request details +message PingRequest { - // Description missing in models - optional DeviceBgpMessageHeaderError message_header_error = 4; + // Array of ping requests + repeated Ping endpoints = 1; +} - // Description missing in models - optional DeviceBgpOpenMessageError open_message_error = 5; +// Sets all configured protocols to `start` or `stop` state. +message ProtocolState { - // Description missing in models - optional DeviceBgpUpdateMessageError update_message_error = 6; + message State { + enum Enum { + unspecified = 0; + start = 1; + stop = 2; + } + } + // Protocol specific states + // required = true + State.Enum state = 1; +} - // Description missing in models - optional DeviceBgpHoldTimerExpired hold_timer_expired = 7; +// Sets attributes for the requested state/actions to be performed on device(s) +message DeviceState { + message Choice { + enum Enum { + unspecified = 0; + lacp_member_state = 1; + } + } // Description missing in models - optional DeviceBgpFiniteStateMachineError finite_state_machine_error = 8; + optional Choice.Enum choice = 1; // Description missing in models - optional DeviceBgpCustomError custom = 9; -} - -// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is -// specified then Graceful Restart will be sent to all configured BGP peers. -message ActionProtocolBgpInitiateGracefulRestart { - - // The names of device BGP peers objects to control. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - repeated string peer_names = 1; - - // Duration (in seconds) after which selected BGP peers will initiate - // Graceful restart by sending the Open Message with Restart State bit set in the Graceful - // Restart capability. - // default = 30 - optional uint32 restart_delay = 2; + optional LacpMemberState lacp_member_state = 2; } // Description missing in models @@ -6893,13 +5494,6 @@ message PingIpv6 { optional string dst_ip = 2; } -// Ping request details -message PingRequest { - - // Array of ping requests - repeated Ping endpoints = 1; -} - // A container for ping responses. message PingResponse { @@ -6933,7 +5527,32 @@ message Response { optional Result.Enum result = 3; } -// Request to traffic generator for metrics of choice. +// Set LACP state for specified LAG Member Port(s). +message LacpMemberState { + + // The names of LAG members (ports) for which the state has to be applied. An empty + // or null list will control all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + repeated string lag_member_port_names = 1; + + message State { + enum Enum { + unspecified = 0; + up = 1; + down = 2; + } + } + // The LACP Member admin state. 'up' will start transmission of LACPDUs on selected + // member ports. 'down' will send a LACPDU with 'sync' flag unset and then stop transmission + // of LACPDUs on selected member ports. + // required = true + State.Enum state = 2; +} + +// Request to traffic generator for metrics of choice message MetricsRequest { message Choice { @@ -6945,9 +5564,7 @@ message MetricsRequest { bgpv6 = 4; isis = 5; lag = 6; - lacp = 7; - lldp = 8; - rsvp = 9; + lacp_lag_member = 7; } } // Description missing in models @@ -6973,16 +5590,10 @@ message MetricsRequest { optional LagMetricsRequest lag = 7; // Description missing in models - optional LacpMetricsRequest lacp = 8; - - // Description missing in models - optional LldpMetricsRequest lldp = 9; - - // Description missing in models - optional RsvpMetricsRequest rsvp = 10; + optional LacpLagMemberMetricsRequest lacp_lag_member = 8; } -// Response containing chosen traffic generator metrics. +// Response containing chosen traffic generator metrics message MetricsResponse { message Choice { @@ -6994,9 +5605,7 @@ message MetricsResponse { bgpv6_metrics = 4; isis_metrics = 5; lag_metrics = 6; - lacp_metrics = 7; - lldp_metrics = 8; - rsvp_metrics = 9; + lacp_lag_member_metrics = 7; } } // Description missing in models @@ -7022,13 +5631,7 @@ message MetricsResponse { repeated LagMetric lag_metrics = 7; // Description missing in models - repeated LacpMetric lacp_metrics = 8; - - // Description missing in models - repeated LldpMetric lldp_metrics = 9; - - // Description missing in models - repeated RsvpMetric rsvp_metrics = 10; + repeated LacpLagMemberMetric lacp_lag_member_metrics = 8; } // The port result request to the traffic generator @@ -7122,16 +5725,6 @@ message PortMetric { // The current rate of bytes received optional float bytes_rx_rate = 12; - - message Transmit { - enum Enum { - unspecified = 0; - started = 1; - stopped = 2; - } - } - // The transmit state of the flow. - optional Transmit.Enum transmit = 13; } // The container for a flow metric request. @@ -7322,7 +5915,6 @@ message Bgpv4MetricsRequest { keepalives_received = 12; notifications_sent = 13; notifications_received = 14; - fsm_state = 15; } } // The list of column names that the returned result set will contain. If the list is @@ -7386,30 +5978,6 @@ message Bgpv4Metric { // Number of Notification messages received. optional int32 notifications_received = 15; - - message FsmState { - enum Enum { - unspecified = 0; - idle = 1; - connect = 2; - active = 3; - opensent = 4; - openconfirm = 5; - established = 6; - } - } - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - optional FsmState.Enum fsm_state = 16; } // The request to retrieve BGPv6 per peer metrics/statistics. @@ -7440,7 +6008,6 @@ message Bgpv6MetricsRequest { keepalives_received = 12; notifications_sent = 13; notifications_received = 14; - fsm_state = 15; } } // The list of column names that the returned result set will contain. If the list is @@ -7504,30 +6071,6 @@ message Bgpv6Metric { // Number of Notification messages received. optional int32 notifications_received = 15; - - message FsmState { - enum Enum { - unspecified = 0; - idle = 1; - connect = 2; - active = 3; - opensent = 4; - openconfirm = 5; - established = 6; - } - } - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - optional FsmState.Enum fsm_state = 16; } // The request to retrieve ISIS per Router metrics/statistics. @@ -7677,7 +6220,7 @@ message LagMetricsRequest { message ColumnNames { enum Enum { unspecified = 0; - oper_status = 1; + oper_states = 1; member_ports_up = 2; frames_tx = 3; frames_rx = 4; @@ -7744,7 +6287,7 @@ message LagMetric { } // The request to retrieve LACP per LAG member metrics/statistics. -message LacpMetricsRequest { +message LacpLagMemberMetricsRequest { // The names of LAG (ports group) for which LACP metrics to be returned. An empty list // will return metrics for all LAGs. @@ -7765,8 +6308,8 @@ message LacpMetricsRequest { message ColumnNames { enum Enum { unspecified = 0; - lacp_packets_rx = 1; - lacp_packets_tx = 2; + lacp_in_pkts = 1; + lacp_out_pkts = 2; lacp_rx_errors = 3; activity = 4; timeout = 5; @@ -7789,7 +6332,7 @@ message LacpMetricsRequest { } // LACP metrics (statistics) per LAG member. -message LacpMetric { +message LacpLagMemberMetric { // The name of a LAG (ports group) configured with LACP. optional string lag_name = 1; @@ -7798,10 +6341,10 @@ message LacpMetric { optional string lag_member_port_name = 2; // Number of LACPDUs received. - optional int64 lacp_packets_rx = 3; + optional int64 lacp_in_pkts = 3; // Number of LACPDUs transmitted. - optional int64 lacp_packets_tx = 4; + optional int64 lacp_out_pkts = 4; // Number of LACPDUs receive packet errors. optional int64 lacp_rx_errors = 5; @@ -7819,270 +6362,52 @@ message LacpMetric { message Timeout { enum Enum { unspecified = 0; - short = 1; - long = 2; - } - } - // The timeout type (short or long) used by the participant. - optional Timeout.Enum timeout = 7; - - message Synchronization { - enum Enum { - unspecified = 0; - in_sync = 1; - out_sync = 2; - } - } - // Indicates whether the participant is in-sync or out-of-sync. - optional Synchronization.Enum synchronization = 8; - - // A true value indicates that the participant will allow the link to be used as part - // of the aggregate. A false value indicates the link should be used as an individual - // link. - optional bool aggregatable = 9; - - // If true, the participant is collecting incoming frames on the link, otherwise false. - optional bool collecting = 10; - - // When true, the participant is distributing outgoing frames; when false, distribution - // is disabled. - optional bool distributing = 11; - - // MAC address that defines the local system ID for the aggregate interface. - optional string system_id = 12; - - // Current operational value of the key for the aggregate interface. - optional int32 oper_key = 13; - - // MAC address representing the protocol partner's interface system ID. - optional string partner_id = 14; - - // Operational value of the protocol partner's key. - optional int32 partner_key = 15; - - // Port number of the local (actor) aggregation member. - optional int32 port_num = 16; - - // Port number of the partner (remote) port for this member port. - optional int32 partner_port_num = 17; -} - -// The request to retrieve LLDP per instance metrics/statistics. -message LldpMetricsRequest { - - // The names of LLDP instances to return results for. An empty list will return results - // for all LLDP instances. - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - // - repeated string lldp_names = 1; - - message ColumnNames { - enum Enum { - unspecified = 0; - frames_rx = 1; - frames_tx = 2; - frames_error_rx = 3; - frames_discard = 4; - tlvs_discard = 5; - tlvs_unknown = 6; - } - } - // The requested list of column names for the result set. If the list is empty then - // metrics for all columns will be returned. The name of LLDP instance can not be excluded. - repeated ColumnNames.Enum column_names = 2; -} - -// LLDP per instance statistics information. -message LldpMetric { - - // The name of the configured LLDP instance. - optional string name = 1; - - // Number of LLDP frames received. - optional int64 frames_rx = 2; - - // Number of LLDP frames transmitted. - optional int64 frames_tx = 3; - - // Number of LLDP frames received with packet errors. This stat should be incremented - // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 - // AB-2005. - optional int64 frames_error_rx = 4; - - // Number of LLDP frames received that are discarded. This stat should be incremented - // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, - // out of order or contains an out of range information string length. This stat should - // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. - optional int64 frames_discard = 5; - - // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition - // specific for that particular TLV or if any TLV extends past the physical end of - // the frame then these TLVs will be discarded. - optional int64 tlvs_discard = 6; - - // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific - // TLV and/or organizationally defined subtype are not recognized,or if TLV type value - // is in the range of reserved TLV types then these TLVs will be considered as unknown - // TLVs. - optional int64 tlvs_unknown = 7; -} - -// The request to retrieve RSVP-TE per Router metrics/statistics. -message RsvpMetricsRequest { - - // The names of RSVP-TE Routers to return results for. An empty list as input will return - // results for all RSVP-TE routers. - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - // - repeated string router_names = 1; - - message ColumnNames { - enum Enum { - unspecified = 0; - ingress_p2p_lsps_configured = 1; - ingress_p2p_lsps_up = 2; - egress_p2p_lsps_up = 3; - lsp_flap_count = 4; - paths_tx = 5; - paths_rx = 6; - resvs_tx = 7; - resvs_rx = 8; - path_tears_tx = 9; - path_tears_rx = 10; - resv_tears_tx = 11; - resv_tears_rx = 12; - path_errors_tx = 13; - path_errors_rx = 14; - resv_errors_tx = 15; - resv_errors_rx = 16; - resv_conf_tx = 17; - resv_conf_rx = 18; - hellos_tx = 19; - hellos_rx = 20; - acks_tx = 21; - acks_rx = 22; - nacks_tx = 23; - nacks_rx = 24; - srefresh_tx = 25; - srefresh_rx = 26; - bundle_tx = 27; - bundle_rx = 28; - path_reevaluation_request_tx = 29; - path_reoptimizations = 30; - } - } - // The list of column names that the returned result set will contain. If the input - // list is empty then all columns will be returned except for any result_groups. - // - repeated ColumnNames.Enum column_names = 2; -} - -// RSVP-TE per router statistics information. -message RsvpMetric { - - // The name of a configured RSVP router. - optional string name = 1; - - // The number of ingress point-to-point LSPs configured or transiting through the RSVP - // router which have been initated from the test port. - optional int32 ingress_p2p_lsps_configured = 2; - - // The number of ingress point-to-point LSPs for which Resv has been received and is - // currently up. - optional int32 ingress_p2p_lsps_up = 3; - - // The number of egress point-to-point LSPs for which Path requests were successfully - // processed and is currently up. - optional int32 egress_p2p_lsps_up = 4; - - // The number of times an LSP went from up to down state either because it timed out - // while waiting for Refreshes or a PathTear or ResvTear message was received which - // caused the LSP to flap. - optional int32 lsp_flap_count = 5; - - // The number of Path messages sent by this RSVP router. - optional int32 paths_tx = 6; - - // The number of Path messages received by this RSVP router. - optional int32 paths_rx = 7; - - // The number of Resv messages sent by this RSVP router. - optional int32 resvs_tx = 8; - - // The number of Resv messages received by this RSVP router. - optional int32 resvs_rx = 9; - - // The number of Path Tear messages sent by this RSVP router. - optional int32 path_tears_tx = 10; - - // The number of Path Tear messages received by this RSVP router. - optional int32 path_tears_rx = 11; - - // The number of Resv Tear messages sent by this RSVP router. - optional int32 resv_tears_tx = 12; - - // The number of Resv Tear messages received by this RSVP router. - optional int32 resv_tears_rx = 13; - - // The number of Path Error messages sent by this RSVP router. - optional int32 path_errors_tx = 14; - - // The number of Path Error messages received by this RSVP router. - optional int32 path_errors_rx = 15; - - // The number of Resv Error messages sent by this RSVP router. - optional int32 resv_errors_tx = 16; - - // The number of Resv Error messages received by this RSVP router. - optional int32 resv_errors_rx = 17; - - // The number of ResvConf messages sent by this RSVP router. - optional int32 resv_conf_tx = 18; - - // The number of ResvConf messages received by this RSVP router. - optional int32 resv_conf_rx = 19; - - // The number of Hello messages sent by this RSVP router. - optional int32 hellos_tx = 20; - - // The number of Hello messages received by this RSVP router. - optional int32 hellos_rx = 21; + short = 1; + long = 2; + } + } + // The timeout type (short or long) used by the participant. + optional Timeout.Enum timeout = 7; - // The number of Ack messages sent by this RSVP router. - optional int32 acks_tx = 22; + message Synchronization { + enum Enum { + unspecified = 0; + in_sync = 1; + out_sync = 2; + } + } + // Indicates whether the participant is in-sync or out-of-sync. + optional Synchronization.Enum synchronization = 8; - // The number of Ack messages received by this RSVP router. - optional int32 acks_rx = 23; + // A true value indicates that the participant will allow the link to be used as part + // of the aggregate. A false value indicates the link should be used as an individual + // link. + optional bool aggregatable = 9; - // The number of Nack messages sent by this RSVP router. - optional int32 nacks_tx = 24; + // If true, the participant is collecting incoming frames on the link, otherwise false. + optional bool collecting = 10; - // The number of Nack messages received by this RSVP router. - optional int32 nacks_rx = 25; + // When true, the participant is distributing outgoing frames; when false, distribution + // is disabled. + optional bool distributing = 11; - // The number of SRefresh messages sent by this RSVP router. - optional int32 srefresh_tx = 26; + // MAC address that defines the local system ID for the aggregate interface. + optional string system_id = 12; - // The number of SRefresh messages received by this RSVP router. - optional int32 srefresh_rx = 27; + // Current operational value of the key for the aggregate interface. + optional int32 oper_key = 13; - // The number of Bundle messages sent by this RSVP router. - optional int32 bundle_tx = 28; + // MAC address representing the protocol partner's interface system ID. + optional string partner_id = 14; - // The number of Bundle messages received by this RSVP router. - optional int32 bundle_rx = 29; + // Operational value of the protocol partner's key. + optional int32 partner_key = 15; - // The number of Path messages with Path Re-evaluation Request enabled sent by this - // RSVP router. - optional int32 path_reevaluation_request_tx = 30; + // Port number of the local (actor) aggregation member. + optional int32 port_num = 16; - // The number of successfully completed Make-Before-Break operations on LSPs on this - // RSVP router. - optional int32 path_reoptimizations = 31; + // Port number of the partner (remote) port for this member port. + optional int32 partner_port_num = 17; } // Request to traffic generator for states of choice @@ -8095,8 +6420,6 @@ message StatesRequest { ipv6_neighbors = 2; bgp_prefixes = 3; isis_lsps = 4; - lldp_neighbors = 5; - rsvp_lsps = 6; } } // Description missing in models @@ -8114,12 +6437,6 @@ message StatesRequest { // Description missing in models optional IsisLspsStateRequest isis_lsps = 5; - - // Description missing in models - optional LldpNeighborsStateRequest lldp_neighbors = 6; - - // Description missing in models - optional RsvpLspsStateRequest rsvp_lsps = 7; } // Response containing chosen traffic generator states @@ -8132,8 +6449,6 @@ message StatesResponse { ipv6_neighbors = 2; bgp_prefixes = 3; isis_lsps = 4; - lldp_neighbors = 5; - rsvp_lsps = 6; } } // Description missing in models @@ -8151,12 +6466,6 @@ message StatesResponse { // Description missing in models repeated IsisLspsState isis_lsps = 5; - - // Description missing in models - repeated LldpNeighborsState lldp_neighbors = 6; - - // Description missing in models - repeated RsvpLspsState rsvp_lsps = 7; } // The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). @@ -8268,7 +6577,6 @@ message BgpPrefixIpv4UnicastFilter { unspecified = 0; igp = 1; egp = 2; - incomplete = 3; } } // The origin to match. If the origin is missing then all origins will match. @@ -8294,7 +6602,6 @@ message BgpPrefixIpv6UnicastFilter { unspecified = 0; igp = 1; egp = 2; - incomplete = 3; } } // The origin to match. If the origin is missing then all origins will match. @@ -8331,7 +6638,6 @@ message BgpPrefixIpv4UnicastState { unspecified = 0; igp = 1; egp = 2; - incomplete = 3; } } // The origin of the prefix. @@ -8367,7 +6673,6 @@ message BgpPrefixIpv6UnicastState { unspecified = 0; igp = 1; egp = 2; - incomplete = 3; } } // The origin of the prefix. @@ -8762,299 +7067,6 @@ message IsisLspPrefixAttributes { optional bool n_flag = 3; } -// The request to retrieve LLDP neighbor information for a given instance. -message LldpNeighborsStateRequest { - - // The names of LLDP instances for which neighbor information will be retrieved. If - // no names are specified then the results will contain neighbor information for all - // configured LLDP instances. - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - // - repeated string lldp_names = 1; - - // Specify the neighbors for which information will be returned. If empty or missing - // then information for all neighbors will be returned. - repeated string neighbor_id_filters = 2; -} - -// LLDP neighbor information. -message LldpNeighborsState { - - // The name of the LLDP instance. - optional string lldp_name = 1; - - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - optional string system_name = 2; - - // The system description field shall contain an alpha-numeric string that is the textual - // description of the network entity. The system description should include the full - // name and version identification of the system's hardware type, software operating - // system, and networking software. If implementations support IETF RFC 3418, the sysDescr - // object should be used for this field. - optional string system_description = 3; - - // The Chassis ID is a mandatory TLV which identifies the chassis component of the - // endpoint identifier associated with the transmitting LLDP agent. - optional string chassis_id = 4; - - message ChassisIdType { - enum Enum { - unspecified = 0; - port_component = 1; - network_address = 2; - chassis_component = 3; - mac_address = 4; - interface_name = 5; - local = 6; - interface_alias = 7; - } - } - // This field identifies the format and source of the chassis identifier string. It - // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. - optional ChassisIdType.Enum chassis_id_type = 5; - - // System generated identifier for the neighbor on the LLDP instance. - optional string neighbor_id = 6; - - // Age since discovery in seconds. - optional int64 age = 7; - - // Seconds since last update received. - optional int64 last_update = 8; - - // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information - // from the neighbor should be considered valid. - optional int32 ttl = 9; - - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - optional string port_id = 10; - - message PortIdType { - enum Enum { - unspecified = 0; - port_component = 1; - network_address = 2; - agent_circuit_id = 3; - mac_address = 4; - interface_name = 5; - local = 6; - interface_alias = 7; - } - } - // This field identifies the format and source of the port identifier string. It is - // an enumerator defined by the PtopoPortIdType object from RFC2922. - optional PortIdType.Enum port_id_type = 11; - - // The binary string containing the actual port identifier for the port which this LLDP - // PDU was transmitted. The source and format of this field is defined by PtopoPortId - // from RFC2922. - optional string port_description = 12; - - // The Management Address is a mandatory TLV which identifies a network address associated - // with the local LLDP agent, which can be used to reach the agent on the port identified - // in the Port ID TLV. - optional string management_address = 13; - - // The enumerated value for the network address type identified in this TLV. This enumeration - // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers - // object. - optional string management_address_type = 14; - - // Description missing in models - repeated LldpCustomTLVState custom_tlvs = 15; - - // Description missing in models - repeated LldpCapabilityState capabilities = 16; -} - -// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised -// with TLV type 127. -message LldpCustomTLVState { - - // The integer value identifying the type of information contained in the value field. - optional int32 custom_type = 1; - - // The organizationally unique identifier field shall contain the organization's OUI - // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order - // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in - // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. - optional string oui = 2; - - // The organizationally defined subtype field shall contain a unique subtype value assigned - // by the defining organization. - optional string oui_subtype = 3; -} - -// LLDP system capability advertised by the neighbor -message LldpCapabilityState { - - message CapabilityName { - enum Enum { - unspecified = 0; - mac_bridge = 1; - two_port_mac_relay = 2; - repeater = 3; - docsis_cable_device = 4; - s_vlan = 5; - telephone = 6; - other = 7; - router = 8; - c_vlan = 9; - station_only = 10; - wlan_access_point = 11; - } - } - // Name of the system capability advertised by the neighbor. Capabilities are represented - // in a bitmap that defines the primary functions of the system. The capabilities are - // defined in IEEE 802.1AB. - optional CapabilityName.Enum capability_name = 1; - - // Indicates whether the corresponding system capability is enabled on the neighbor. - optional bool capability_enabled = 2; -} - -// The request to retrieve RSVP Label Switched Path (LSP) information learned by the -// router. -message RsvpLspsStateRequest { - - // The names of RSVP-TE routers for which learned information is requested. An empty - // list will return results for all RSVP=TE routers. - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - // - repeated string rsvp_router_names = 1; -} - -// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. -message RsvpLspsState { - - // The name of the RSVP-TE Router. - optional string rsvp_router_name = 1; - - // IPv4 Point-to-Point RSVP-TE Discovered LSPs. - repeated RsvpIPv4LspState ipv4_lsps = 2; -} - -// IPv4 RSVP-TE Discovered LSPs. -message RsvpIPv4LspState { - - // The origin IPv4 address of RSVP session. - optional string source_address = 1; - - // The IPv4 destination address of RSVP session. - optional string destination_address = 2; - - // It refers to the RSVP LSP properties. - optional RsvpLspState lsp = 3; - - // It refers to RSVP RRO objects container. - repeated RsvpLspIpv4Rro rros = 4; - - // It refers to RSVP ERO objects container. - repeated RsvpLspIpv4Ero eros = 5; -} - -// IPv4 RSVP-TE Discovered LSPs. -message RsvpLspState { - - // The tunnel id of RSVP session which acts as an identifier that remains constant over - // the life of the tunnel. - optional int32 tunnel_id = 1; - - // The lsp-id of RSVP session which acts as a differentiator for two lsps originating - // from the same headend, commonly used to distinguish RSVP sessions during make before - // break operations. - optional int32 lsp_id = 2; - - // The value of RSVP-TE Session Name field of the Session Attribute object. - optional string session_name = 3; - - // The label received by RSVP-TE ingress. - optional int32 label_in = 4; - - // The label assigned by RSVP-TE egress. - optional int32 label_out = 5; - - message SessionStatus { - enum Enum { - unspecified = 0; - up = 1; - down = 2; - } - } - // Operational state of the RSVP LSP. - optional SessionStatus.Enum session_status = 6; - - message LastFlapReason { - enum Enum { - unspecified = 0; - resv_tear = 1; - path_tear = 2; - path_timeout = 3; - } - } - // The reason for the last flap of this RSVP session. - optional LastFlapReason.Enum last_flap_reason = 7; - - // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. - optional int64 up_time = 8; -} - -// This contains the list of Record Route Object(RRO) objects associated with the traffic -// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the -// route traversed by the LSP. The RRO might be present in both Path message and Resv -// message, the RRO stores the IP addresses of the routers that the traffic engineering -// tunnel traversed and also the label generated and distributed by the routers. The -// RROs in the Resv message mirrors that of the Path message, the only difference is -// that the RRO in a Resv message records the path information in the reverse direction. -// -message RsvpLspIpv4Rro { - - // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. - optional string address = 1; - - // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute - // object, nodes doing route recording should include the Label Record subobject containing - // the reported label. - optional int32 reported_label = 2; -} - -// This contains the list of sub-objects included in the Explicit Route Object(ERO) -// object send in the PATH message from the ingress. These sub-objects contain the intermediate -// hops to be traversed by the LSP while being forwarded towards the egress endpoint. -message RsvpLspIpv4Ero { - - // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 - // prefix. - optional string prefix = 1; - - // The autonomous system number indicated by the ERO. Specified only when the ERO hop - // is an 2 or 4-byte AS number. - optional int32 asn = 2; - - message Type { - enum Enum { - unspecified = 0; - ipv4 = 1; - ipv6 = 2; - asn = 3; - asn4 = 4; - label = 5; - unnumbered_interface = 6; - } - } - // The type indicated by the ERO. - optional Type.Enum type = 3; -} - // The capture result request to the traffic generator. Stops the port capture on the // port_name and returns the capture. message CaptureRequest { @@ -16604,20 +14616,98 @@ message PatternFlowMplsTimeToLive { optional PatternFlowMplsTimeToLiveCounter decrement = 6; } -// Version details -message Version { +// integer counter pattern +message PatternEndpointsClientPortsCounter { + + // Description missing in models + // default = 80 + optional int32 start = 1; + + // Description missing in models + // default = 1 + optional int32 step = 2; + + // Description missing in models + // default = 1 + optional int32 count = 3; +} + +// TCP port range +message PatternEndpointsClientPorts { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 80 + optional int32 value = 2; + + // Description missing in models + // default = [80] + repeated int32 values = 3; + + // Description missing in models + optional PatternEndpointsClientPortsCounter increment = 4; + + // Description missing in models + optional PatternEndpointsClientPortsCounter decrement = 5; +} + +// integer counter pattern +message PatternEndpointsServerPortsCounter { + + // Description missing in models + // default = 80 + optional int32 start = 1; + + // Description missing in models + // default = 1 + optional int32 step = 2; + + // Description missing in models + // default = 1 + optional int32 count = 3; +} + +// TCP port range +message PatternEndpointsServerPorts { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 80 + optional int32 value = 2; - // Version of API specification - // default = - optional string api_spec_version = 1; + // Description missing in models + // default = [80] + repeated int32 values = 3; - // Version of SDK generated from API specification - // default = - optional string sdk_version = 2; + // Description missing in models + optional PatternEndpointsServerPortsCounter increment = 4; - // Version of application consuming or serving the API - // default = - optional string app_version = 3; + // Description missing in models + optional PatternEndpointsServerPortsCounter decrement = 5; } // The request has succeeded with no application content but the server @@ -16643,10 +14733,6 @@ message InternalServerError { message SetConfigRequest { Config config = 1; } - -message UpdateConfigRequest { - ConfigUpdate config_update = 1; -} message SetConfigResponse { optional ResponseWarning status_code_200 = 1; optional ResponseError status_code_400 = 2; @@ -16659,32 +14745,6 @@ message GetConfigResponse { optional ResponseError status_code_500 = 3; } -message UpdateConfigResponse { - optional ResponseWarning status_code_200 = 1; - optional ResponseError status_code_400 = 2; - optional ResponseError status_code_500 = 3; -} - - -message SetControlStateRequest { - ControlState control_state = 1; -} -message SetControlStateResponse { - optional ResponseWarning status_code_200 = 1; - optional ResponseError status_code_400 = 2; - optional ResponseError status_code_500 = 3; -} - - -message SetControlActionRequest { - ControlAction control_action = 1; -} -message SetControlActionResponse { - optional ControlActionResponse status_code_200 = 1; - optional ResponseError status_code_400 = 2; - optional ResponseError status_code_500 = 3; -} - message SetTransmitStateRequest { TransmitState transmit_state = 1; @@ -16795,12 +14855,6 @@ message GetCaptureResponse { optional ResponseError status_code_500 = 3; } -message GetVersionResponse { - optional Version status_code_200 = 1; - optional ResponseError status_code_400 = 2; - optional ResponseError status_code_500 = 3; -} - // Description missing in models service Openapi { @@ -16809,51 +14863,25 @@ service Openapi { rpc SetConfig(SetConfigRequest) returns (SetConfigResponse); // Description missing in models rpc GetConfig(google.protobuf.Empty) returns (GetConfigResponse); - // Updates specific attributes of resources configured on the traffic generator. The - // fetched configuration shall reflect the updates applied successfully. - // The Response.Warnings in the Success response is available for implementers to disclose - // additional information about a state change including any implicit changes that are - // outside the scope of the state change. - rpc UpdateConfig(UpdateConfigRequest) returns (UpdateConfigResponse); - // Sets the operational state of configured resources. - rpc SetControlState(SetControlStateRequest) returns (SetControlStateResponse); - // Triggers actions against configured resources. - rpc SetControlAction(SetControlActionRequest) returns (SetControlActionResponse); - // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead - // // Updates the state of configuration resources on the traffic generator. // The Response.Warnings in the Success response is available for implementers to disclose // additional information about a state change including any implicit changes that are // outside the scope of the state change. rpc SetTransmitState(SetTransmitStateRequest) returns (SetTransmitStateResponse); - // Deprecated: Please use `set_control_state` with `port.link` choice instead - // // Updates the state of configuration resources on the traffic generator. rpc SetLinkState(SetLinkStateRequest) returns (SetLinkStateResponse); - // Deprecated: Please use `set_control_state` with `port.capture` choice instead - // // Updates the state of configuration resources on the traffic generator. rpc SetCaptureState(SetCaptureStateRequest) returns (SetCaptureStateResponse); - // Deprecated: Please use `update_config` with `flow` choice instead - // // Updates flow properties without disruption of transmit state. rpc UpdateFlows(UpdateFlowsRequest) returns (UpdateFlowsResponse); - // Deprecated: Please use `set_control_state` with `protocol.route` choice instead - // // Updates the state of configuration resources on the traffic generator. rpc SetRouteState(SetRouteStateRequest) returns (SetRouteStateResponse); - // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead - // // API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each // endpoint 1 ping packet will be sent and API shall wait for ping response to either // be successful or timeout. The API wait timeout for each request is 300ms. rpc SendPing(SendPingRequest) returns (SendPingResponse); - // Deprecated: Please use `set_control_state` with `protocol.all` choice instead - // // Sets all configured protocols to `start` or `stop` state. rpc SetProtocolState(SetProtocolStateRequest) returns (SetProtocolStateResponse); - // Deprecated: Please use `set_control_state` with `protocol` choice instead - // // Set specific state/actions on device configuration resources on the traffic generator. rpc SetDeviceState(SetDeviceStateRequest) returns (SetDeviceStateResponse); // Description missing in models @@ -16862,6 +14890,4 @@ service Openapi { rpc GetStates(GetStatesRequest) returns (GetStatesResponse); // Description missing in models rpc GetCapture(GetCaptureRequest) returns (GetCaptureResponse); - // Description missing in models - rpc GetVersion(google.protobuf.Empty) returns (GetVersionResponse); } diff --git a/common/common.yaml b/common/common.yaml index 5b7cf349..03ac139b 100644 --- a/common/common.yaml +++ b/common/common.yaml @@ -23,3 +23,4 @@ components: description: >- A empty container that is used to indicate a null choice. type: object + diff --git a/config/config.yaml b/config/config.yaml index 8017f1ab..fa7a0e17 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -55,6 +55,13 @@ components: options: $ref: '#/components/schemas/Config.Options' x-field-uid: 8 + apps: + description: |- + The emulated protocols such as TCP/UDP, HTTP, etc and attacks, which can be attached to device IPv4/v6 interface. + type: array + items: + $ref: '../app/app.yaml#/components/schemas/App' + x-field-uid: 9 lldp: description: |- LLDP protocol that will be configured on traffic generator.