$schema: http://support.riverbed.com/apis/service_def/2.2 description: NPM Packet Capture API [DEPRECATED] id: http://support.riverbed.com/apis/npm.packet_capture/2.1 name: npm.packet_capture provider: riverbed resources: job: additionalProperties: false description: Information about a capture job links: clear_packets: {description: Used to clear capture job data, method: POST, path: '$/jobs/items/{id}/clear'} delete: {method: DELETE} get: method: GET response: {$ref: '#/resources/job'} self: {path: '$/jobs/items/{id}'} set: method: PUT request: {$ref: '#/resources/job'} response: {$ref: '#/resources/job'} properties: config: additionalProperties: false description: Configuration of a capture job properties: capture_from_all_vifgs: {description: 'If enabled, this capture job will ignore the field ''vifgs'' and will capture from all existing VIFGs', type: boolean} enabled: {description: Whether the capture job is configured to run or not, type: boolean} filter: {$ref: '#/types/input_filter'} indexing: {$ref: '#/types/job_indexing'} name: {description: Name of the job, type: string} retention_rules: {$ref: '#/types/packet_retention'} snap_len: default: 65535 description: It specifies the max number of bytes for every packet that will be stored to disk. If the packet is longer, it will be truncated tags: {cpptype: uint32} type: integer vifgs: description: List of VIFGs the capture job is collecting packets from items: description: ID of the VIFG that this capture job captures from tags: {cpptype: uint32} type: integer type: array required: [name, enabled, vifgs] type: object id: {description: The UUID of the capture job, readOnly: true, type: string} state: additionalProperties: false description: Information about the state of a capture job properties: stats: additionalProperties: false description: Capture job statistics properties: bytes_written: $merge: source: {$ref: '#/types/recent_stats'} with: {description: 'Number of bytes written to disk (packets only, without overhead)'} packets_written: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Number of packets written to disk} required: [packets_written, bytes_written] type: object status: additionalProperties: false description: Generic information on the capture job and its data properties: capture_disk_space: description: The actual size of the capture job on disk (including overhead) tags: {cpptype: uint64} type: integer capture_size: description: The size of all the packets of the capture job (packets only, without overhead) tags: {cpptype: uint64} type: integer packet_end_time: {description: The timestamp of the last packet of the capture job. The string represents a decimal value of seconds since epoch, type: string} packet_start_time: {description: The timestamp of the first packet of the capture job. The string represents a decimal value of seconds since epoch, type: string} state: description: State of a capture job enum: [UNKNOWN, STOPPED, RUNNING] type: string required: [state, packet_start_time, packet_end_time, capture_size, capture_disk_space] type: object readOnly: true required: [stats, status] type: object required: [config] type: object job_defaults: additionalProperties: false description: Default values to use when creating a new capture job links: get: method: GET response: {$ref: '#/resources/job_defaults'} self: {path: $/info/job_defaults} properties: capture_from_all_vifgs: {description: Default value for whether the capture job should capture from all VIFGs or not, type: boolean} enabled: {description: Default status of the job, type: boolean} indexing: {$ref: '#/types/job_indexing'} name: {description: Default name of new job, type: string} retention_rules: {$ref: '#/types/packet_retention'} snap_len: description: Default value for snaplen tags: {cpptype: uint32} type: integer readOnly: true required: [name, enabled, snap_len, capture_from_all_vifgs, retention_rules, indexing] type: object jobs: additionalProperties: false description: Capture jobs configured on the system links: create: method: POST request: {$ref: '#/resources/job'} response: {$ref: '#/resources/job'} get: method: GET response: {$ref: '#/resources/jobs'} self: {path: $/jobs} properties: items: description: List of capture jobs items: {$ref: '#/resources/job'} type: array required: [items] type: object packet_broker_types: description: Information about supported packet brokers items: additionalProperties: false description: Information about a single packet broker properties: description: {description: Description of the specific type of packet broker, type: string} type: {$ref: '#/types/packet_broker_types_type_enum'} type_pretty: {description: User friendly name for the specific type of packet broker, type: string} required: [type, type_pretty, description] type: object links: get: method: GET response: {$ref: '#/resources/packet_broker_types'} self: {path: $/info/packet_broker_types} type: array phys_interface: additionalProperties: false description: Information about a monitoring interface links: delete: {method: DELETE} get: method: GET response: {$ref: '#/resources/phys_interface'} reset_stats: {description: Used to reset the statistics of the monitoring interface, method: POST, path: '$/interfaces/items/{name}/reset_stats'} self: {path: '$/interfaces/items/{name}'} set: method: PUT request: {$ref: '#/resources/phys_interface'} response: {$ref: '#/resources/phys_interface'} properties: config: additionalProperties: false description: Configuration of a monitoring interface properties: alias: {description: Alternative name for the interface, type: string} description: {description: A description of the monitoring interface, type: string} enabled: {description: Used to enable/disable a monitoring interface, type: boolean} speed_duplex: {$ref: '#/types/phys_interface_capabilities_enum'} required: [alias, enabled, description, speed_duplex] type: object name: {description: The name of the monitoring interface, readOnly: true, type: string} state: additionalProperties: false description: Information about the state of a monitoring interface properties: interface_type: description: The type of interface. It gives a high level information about the type of hardware used (FILE is reserved for internal use) enum: [1G_COPPER, 1G_FIBER, 1G_VIRTUAL, 10G_COPPER, 10G_FIBER, 10G_VIRTUAL, 40G_FIBER, 40G_VIRTUAL, FILE, UNKNOWN] type: string mtu: description: The Maximum Transmission Unit (MTU) of the interface tags: {cpptype: uint32} type: integer speed_duplex: {$ref: '#/types/phys_interface_capabilities_enum'} stats: additionalProperties: false description: Statistics for a monitoring interface properties: bytes_total: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Total number of bytes received by the interface (including drops)} packets_dropped: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Number of packets dropped by the interface} packets_total: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Total number of packets received by the interface (including drops)} readOnly: true required: [bytes_total, packets_total, packets_dropped] type: object status: description: The state of the interface. UP and DOWN provide link status information. CONNECTED and DISCONNECTED provide tcp connection information. MISSING is used when the interace is no longer detected on the system. DISABLED is used for interfaces that have been manually disabled. enum: [UP, DOWN, CONNECTED, DISCONNECTED, MISSING, DISABLED, UNKNOWN] type: string readOnly: true required: [status, interface_type, mtu, speed_duplex, stats] type: object required: [config] type: object phys_interface_capabilities: additionalProperties: false description: Information about supported capabilities of a monitoring interface links: get: method: GET response: {$ref: '#/resources/phys_interface_capabilities'} self: {path: '$/interfaces/items/{name}/capabilities'} properties: name: {description: The name of the monitoring interface, type: string} speed_duplex: description: An array of the speeds supported by the interface items: {$ref: '#/types/phys_interface_capabilities_enum'} type: array required: [name, speed_duplex] type: object phys_interfaces: additionalProperties: false description: Monitoring interfaces detected on the system links: get: method: GET response: {$ref: '#/resources/phys_interfaces'} self: {path: $/interfaces} properties: items: description: List of monitoring interfaces items: {$ref: '#/resources/phys_interface'} type: array required: [items] type: object settings: additionalProperties: false description: Global settings for packet capture links: get: method: GET response: {$ref: '#/resources/settings'} self: {path: $/settings} set: method: PUT request: {$ref: '#/resources/settings'} response: {$ref: '#/resources/settings'} properties: deduplication: additionalProperties: false description: Packet deduplication advanced settings properties: entries: description: Size of internal queues used by packet deduplication engine tags: {cpptype: uint32} type: integer esp_alg_enabled: {description: Enable/Disable deduplication on ESP packets with IP identification equal to 0, type: boolean} esp_timeout: {description: Time window used for ESP packets (with IP identification equal to 0) instead of the global 'timeout'. The string represents a decimal value of seconds, type: string} tcp_syn_ack_enabled: {description: Enable/Disable deduplication on TCP SYN/ACK packets with IP identification equal to 0, type: boolean} tcp_syn_ack_timeout: {description: Time window used for TCP SYN/ACK packets (with IP identification equal to 0) instead of the global 'timeout'. The string represents a decimal value of seconds, type: string} timeout: {description: 'Time window within which packet deduplication is guaranteed. If two duplicate packets are received further apart than this timeout, they will not be considered duplicates. The string represents a decimal value of seconds', type: string} udp_alg_enabled: {description: Enable/Disable deduplication on UDP packets, type: boolean} udp_timeout: {description: Time window used for UDP packets instead of the global 'timeout'. The string represents a decimal value of seconds, type: string} required: [entries, timeout, udp_timeout, udp_alg_enabled, tcp_syn_ack_timeout, tcp_syn_ack_enabled, esp_timeout, esp_alg_enabled] type: object packet_broker: additionalProperties: false description: Packet Broker settings properties: type: {$ref: '#/types/packet_broker_types_type_enum'} required: [type] type: object packet_export_acceleration: additionalProperties: false description: Settings related to the Packet Export Acceleration feature properties: read_enabled: {description: Enable acceleration engine during read operations (if indexs are present), type: boolean} write_enabled: {description: Enable generation of indexes while writing packets to disk, type: boolean} required: [read_enabled, write_enabled] type: object required: [packet_broker, deduplication, packet_export_acceleration] type: object vifg: additionalProperties: false description: Information about a Virtual Interface Group (VIFG) links: delete: {method: DELETE} get: method: GET response: {$ref: '#/resources/vifg'} reset_stats: {description: Used to reset the statistics of the Virtual Interface Group (VIFG), method: POST, path: '$/vifgs/items/{id}/reset_stats'} self: {path: '$/vifgs/items/{id}'} set: method: PUT request: {$ref: '#/resources/vifg'} response: {$ref: '#/resources/vifg'} properties: config: additionalProperties: false description: Configuration of a Virtual Interface Group (VIFG) properties: bandwidth_capacity: description: Custom value for the capacity of the VIFG (in Mbps). If set to zero, it will use default values (see the field bandwidth_capacity in the 'state' object) tags: {cpptype: uint64} type: integer dedup: {description: Whether or not packet deduplication is enabled on this VIFG, type: boolean} description: {description: Description of the VIFG, type: string} enabled: {description: Whether or not the VIFG is enabled (disabled VIFGs will drop all the their traffic), type: boolean} filter: {$ref: '#/types/input_filter'} flow_export: {$ref: '#/types/flow_export_filter'} is_other_vifg: {description: Whether or not this VIFG is the 'other vifg', type: boolean} members: description: List of members associated with this VIFG items: {description: 'A monitoring interface (in PHYSICAL_INTERFACE mode) or a VLAN ID (in VLAN mode) that belongs to the VIFG. The VLAN ID can be one of: an integer (0-4095), a colon-seperated list of integers to represent QinQ (1:4:5), or ''UNTAGGED''', type: string} type: array name: {description: Unique name of the VIFG, type: string} required: [name, members, enabled] type: object id: description: The unique ID of the Virtual Interface Group (VIFG) readOnly: true tags: {cpptype: uint32} type: integer state: additionalProperties: false description: Information about the state of a Virtual Interface Group (VIFG) properties: bandwidth_capacity: description: The (read-only) capacity of the VIFG in Mbps. In PHYSICAL_INTERFACE mode, it's the sum of the speeds of the interfaces that the VIFG collects. In VLAN mode, the sum of the speeds of all interfaces. It can also be configured to a custom value (see the field bandwidth_capacity in the 'config' object) tags: {cpptype: uint64} type: integer mtu: description: In PHYSICAL_INTERFACE mode, the max Maximum Transmission Unit (MTU) of the interfaces that the VIFG collects. In VLAN mode, the max MTU of all interfaces readOnly: true tags: {cpptype: uint64} type: integer stats: additionalProperties: false description: Statistics of a Virtual Interface Group (VIFG) properties: bytes_received: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Number of bytes correctly received by VIFG (including duplicates)} packets_duped: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Number of duplicate packets} packets_received: $merge: source: {$ref: '#/types/recent_stats'} with: {description: Number of packets correctly received by VIFG (including duplicates)} readOnly: true required: [bytes_received, packets_received, packets_duped] type: object readOnly: true required: [stats, bandwidth_capacity, mtu] type: object required: [config] type: object vifg_global_state: additionalProperties: false description: Global state for Virtual Interface Groups (VIFGs) links: get: method: GET response: {$ref: '#/resources/vifg_global_state'} self: {path: $/vifgs/state} properties: autodiscovery: additionalProperties: false description: Information about the status of VIFG autodiscovery properties: maximum_reached: {description: 'True if the maximum number of VIFGs has already been automatically discovered and no more VIFGs will be created. False, otherwise. The maximum is currently set to 2000 (including the ''other vifg'')', type: boolean} type: object readOnly: true required: [autodiscovery] type: object vifg_settings: additionalProperties: false description: Global settings for Virtual Interface Groups (VIFGs) links: get: method: GET response: {$ref: '#/resources/vifg_settings'} self: {path: $/vifgs/settings} set: method: PUT request: {$ref: '#/resources/vifg_settings'} response: {$ref: '#/resources/vifg_settings'} properties: autodiscovery: additionalProperties: false description: Global settings for the VIFG autodiscovery feature properties: default: additionalProperties: false description: Default values for VIFGs created by autodiscovery properties: dedup: {description: Enable or disable packet deduplication on VIFGs created by autodiscovery, type: boolean} filter: {$ref: '#/types/input_filter'} flow_export: {$ref: '#/types/flow_export_filter'} required: [filter, dedup, flow_export] type: object enabled: {description: Enable or disable VIFG autodiscovery, type: boolean} required: [enabled, default] type: object enable_aggregation: {description: Enable or disable VIFG aggregation in downstream processing, type: boolean} grouping_type: {description: The type of grouping used for incoming packets, type: string} supported_grouping_types: description: Valid values for the field 'grouping_types' items: description: Supported grouping types enum: [UNKNOWN, PHYSICAL_INTERFACE, VLAN] type: string readOnly: true type: array required: [grouping_type, supported_grouping_types, enable_aggregation, autodiscovery] type: object vifgs: additionalProperties: false description: Virtual Interface Groups (VIFGs) configured on the system links: create: method: POST request: {$ref: '#/resources/vifg'} response: {$ref: '#/resources/vifg'} get: method: GET response: {$ref: '#/resources/vifgs'} self: params: is_other_vifg: {description: Filter the 'other vifg' from the list of VIFGs, type: boolean} limit: description: Limit number of elements to return tags: {cpptype: uint32} type: integer offset: description: Starting element number when querying for a set of elements paging tags: {cpptype: uint32} type: integer sort: description: Direction of sorting (either 'asc' for ascending or 'desc' for descending) enum: [asc, desc] type: string sortby: {description: 'Fields to use for sorting. Supported values are: name, description, enabled, interfaces, enable_dedup, flow_export_enabled, bytes_received, packets_received, packets_duped', type: string} path: $/vifgs properties: count: description: The total number of Virtual Interface Groups (VIFGs) tags: {cpptype: uint32} type: integer items: description: List of Virtual Interface Groups (VIFGs) items: {$ref: '#/resources/vifg'} type: array required: [items] type: object tags: {deprecated: true} title: NPM Packet Capture [DEPRECATED] types: flow_export_filter: additionalProperties: false description: Filter settings used for Flow Export properties: enabled: {description: Enable or disable Flow Export filtering, type: boolean} filter: {$ref: '#/types/input_filter'} required: [enabled, filter] type: object input_filter: additionalProperties: false description: Packet filter configuration properties: type: description: The type of filter to be processed enum: [UNKNOWN, STEELFILTER, BPF] type: string value: {description: String representation of the filter, type: string} required: [type, value] type: object job_indexing: additionalProperties: false description: Parameters for Microflow indexing properties: enabled: {description: Enable or disable Microflow indexing on the capture job, type: boolean} retention_rules: {$ref: '#/types/packet_retention'} required: [enabled, retention_rules] type: object packet_broker_types_type_enum: description: Enumerative for supported packet brokers enum: [NONE, UNKNOWN, CPACKET_TS_ONLY, CPACKET_TS_AND_SLICE, GIGAMON_HEADER, GIGAMON_TRAILER, GIGAMON_TRAILER_X12, ANUE, ARISTA, ARISTA_BEFORE_FCS] type: string packet_retention: additionalProperties: false description: Packet storage retention rules properties: max_disk_space: description: Maximum disk space for captured packets (i.e. the capture job cannot store more than N bytes worth of packets). Value in bytes. If equal to zero or not set, the paramter will be ignored tags: {cpptype: uint64} type: integer max_retention_time: {description: 'Maximum retention time for captured packets (i.e. the capture job cannot store more than N seconds worth of packets). The string represents a decimal velue of seconds since epoch. If equal to zero or not set, the parameter will be ignored', type: string} min_disk_space: description: Minimum disk space for captured packets (i.e. best effort to have at least N bytes worth of packets in the capture job). Value in bytes. If equal to zero or not set, the parameter will be ignored tags: {cpptype: uint64} type: integer min_retention_time: {description: 'Minimum retention time for captured packets (i.e. best effort to have at least N seconds worth of packets in the capture job). The string represents a decimal value of seconds since epoch. If equal to zero or not set, the parameter will be ignored', type: string} type: object phys_interface_capabilities_enum: description: The types of supported speed/duplex configurations. AUTONEG_* values will try to autonegotiate the corresponding speed in Mbps (AUTNEG will negotiate them all). All other values will force a specific speed in Mbps (FD full duplex, HD half duplex) enum: [UNKNOWN, AUTONEG, AUTONEG_10, AUTONEG_100, AUTONEG_1000, 10_HD, 10_FD, 100_HD, 100_FD, 1000_FD, 10000_FD, 40000_FD, 100000_FD] type: string recent_stats: additionalProperties: false description: Statistics about last second/minute/hour (and total) properties: last_hour: description: The value of the statistics in the last hour tags: {cpptype: uint64} type: integer last_minute: description: The value of the statistics in the last minute tags: {cpptype: uint64} type: integer last_second: description: The value of the statistic in the last second tags: {cpptype: uint64} type: integer total: description: Total number of the statistic tags: {cpptype: uint64} type: integer readOnly: true required: [total] type: object version: '2.1'