Skip to content

ostinato.core module

This is the core module for the Ostinato Python API. All drone configuration is done by creating an instance of the DroneProxy class and calling its various methods subsequently.

Module Classes

DroneProxy class

DroneProxy(host_name, port_number=7878)
DroneProxy acts as a proxy to a Drone instance. A method invoked on this class will be trigerred on the actual Drone instance being proxied.

Class methods

disconnect

DroneProxy.disconnect()
Disconnect from the Drone instance

connect

DroneProxy.connect()
Connect to the Drone instance

hostName

DroneProxy.hostName() : str(unicode)
Returns the hostname of the Drone which is being proxied by this DroneProxy object

portNumber

DroneProxy.portNumber() : int
Returns the TCP port number of the Drone which is being proxied by this DroneProxy object

saveCaptureBuffer

DroneProxy.saveCaptureBuffer(buffer, file_name)
Save the capture buffer in a PCAP file

getPortIdList

DroneProxy.getPortIdList(Void) : PortIdList
Fetches the list of all available port ids.

Returns PortIdList

getPortConfig

DroneProxy.getPortConfig(PortIdList) : PortConfigList
Fetches port configuration for each port in the given PortIdList.

Returns a PortConfigList

modifyPort

DroneProxy.modifyPort(PortConfigList) : Ack
Modifies port configuration as specified for all ports in PortConfigList. Please note that not all port attributes can be modified.

Returns Ack

getStreamIdList

DroneProxy.getStreamIdList(PortId) : StreamIdList
Fetches the list of stream ids for the given PortId

Returns StreamIdList

getStreamConfig

DroneProxy.getStreamConfig(StreamIdList) : StreamConfigList
Fetches configuration for each stream in the given StreamIdList. A stream id list can be associated with only one port. To fetch stream configuration for multiple ports, call the API multiple times.

Returns StreamConfigList

addStream

DroneProxy.addStream(StreamIdList) : Ack
Adds a list of stream ids to a port. The list can also include a single stream id. This API just adds a stream id - the stream will be created with default configuration. To configure the stream call modifyStream() after adding the stream id.

Returns Ack

deleteStream

DroneProxy.deleteStream(StreamIdList) : Ack
Deletes the streams corresponding to the stream ids in StreamIdList

Returns Ack

modifyStream

DroneProxy.modifyStream(StreamConfigList) : Ack
Modifies stream configuration as specified for all streams in StreamConfigList.

Returns Ack

build

DroneProxy.build(BuildConfig) : Ack
Builds all packets for all streams configured on the port specified in BuildConfig. Calling this API before startTransmit() ensures that the packet transmit starts immediately on calling the latter.

If startTransmit() is called without calling build(), it will first build the packets and then start transmit.

This API was introduced in ver 1.0

Returns Ack

startTransmit

DroneProxy.startTransmit(TransmitConfig) : Ack  (1) [Since v1.4]
DroneProxy.startTransmit(PortIdList) : Ack      (2) [Deprecated]
(1) Starts transmit on all ports specified in TransmitConfig. If TransmitConfig.duration is 0 (default), transmit will stop when there are no more packets to send or when stopTransmit() is called. If duration is set to a non-zero value, the transmit will automatically stop after the specified duration (in seconds). There may be a small variation in the configured duration and the actual transmit duration.

This API was introduced in ver 1.4

(2) Deprecated starting v1.4: Starts transmit on each port in the given PortIdList

Returns Ack

stopTransmit

DroneProxy.stopTransmit(PortIdList) : Ack
Stops transmit on each port in the given PortIdList

Returns Ack

startCapture

DroneProxy.startCapture(PortIdList) : Ack
Starts transmit on each port in the given PortIdList

Returns Ack

stopCapture

DroneProxy.stopCapture(PortIdList) : Ack
Stops transmit on each port in the given PortIdList

Returns Ack

getCaptureBuffer

DroneProxy.getCaptureBuffer(PortId) : CaptureBuffer
Fetches the captured buffer of packets for the given PortId. Calling this API will implicitly stop the capture.

Returns Ack

getStats

DroneProxy.getStats(PortIdList) : PortStatsList
Fetches the port statistics for each port in the given PortIdList

Returns PortStatsList

clearStats

DroneProxy.clearStats(PortIdList) : Ack
Clears all the port statistics for each port in the given PortIdList

Returns Ack

getDeviceGroupIdList

DroneProxy.getDeviceGroupIdList(PortId) : DeviceGroupIdList
Fetches the list of device group ids for the given PortId

getDeviceGroupConfig

DroneProxy.getDeviceGroupConfig(DeviceGroupIdList) : DeviceGroupConfigList
Fetches configuration for each device group in the given DeviceGroupIdList. A device group id list can be associated with only one port. To fetch device group configuration for multiple ports, call the API multiple times.

Returns DeviceGroupConfigList

addDeviceGroup

DroneProxy.addDeviceGroup(DeviceGroupIdList) : Ack
Adds a list of device group ids to a port. The list can also include a single device group id. This API just adds a device group id - the device group will be created with default configuration. To configure the device group call modifyDeviceGroup() after adding the device group id.

Returns Ack

deleteDeviceGroup

DroneProxy.deleteDeviceGroup(DeviceGroupIdList) : Ack
Deletes the device groups corresponding to the device group ids in DeviceGroupIdList

Returns Ack

modifyDeviceGroup

DroneProxy.modifyDeviceGroup(DeviceGroupConfigList) : Ack
Modifies device group configuration as specified for all device groups in DeviceGroupConfigList.

Returns Ack

getDeviceList

DroneProxy.getDeviceList(PortId) : PortDeviceList
Fetches the list of devices for the given PortId. This will include all devices across all device groups on that port.

Returns PortDeviceList

resolveDeviceNeighbors

DroneProxy.resolveDeviceNeighbors(PortIdList) : Ack
Triggers ARP/ND resolution for all ports in the given PortIdList. ARP/ND requests will be sent for each device gateway IP address and for all stream destination IPs that are in the same subnet as the device itself.

The ARP/ND replies received in response to these requests will be stored in the Neighbor Table (i.e. ARP/ND cache)

Returns Ack

clearDeviceNeighbors

DroneProxy.clearDeviceNeighbors(PortIdList) : Ack
Clears the Neighbor Table.

Returns Ack

getDeviceNeighbors

DroneProxy.getDeviceNeighbors(PortId) : PortNeighborList
Fetches the Neighbor Table (i.e. ARP/ND cache) for the given PortId. Entries in the table will be for all devices across all device groups configured on the port.

getStreamStats

DroneProxy.getStreamStats(StreamGuidList) : StreamStatsList
Fetches the stream statistics for each port in the given StreamGuidList. Specify the GUIDs for which stats are required by populating StreamGuidList.stream_guid. If not populated, stats for all GUIDs are returned.

Returns StreamStatsList

getStreamStatsDict

DroneProxy.getStreamStatsDict(StreamGuidList) : StreamStatsDict
Convenience method for fetching stream stats. Returns an object containing port/sguid dictionaries for easier access e.g.
stream_stats = drone.getStreamStatsDict(guid_list)
stream_stats.sguid[101].port[1].tx_pkts
stream_stats.port[1].sguid[101].rx_bytes

In addition, you can also retrieve totals across ports, e.g.

stream_stats.port[1].total.rx_pkts
stream_stats.port[1].total.rx_bytes
stream_stats.port[1].total.tx_pkts
stream_stats.port[1].total.tx_bytes

and totals across sguids -

stream_stats.sguid[101].total.tx_pkts
stream_stats.sguid[101].total.rx_pkts
stream_stats.sguid[101].total.pkt_loss

This method is a wrapper around getStreamStats

clearStreamStats

DroneProxy.clearStreamStats(StreamGuidList) : Ack
Clears the stream statistics for each port in the given StreamGuidList. Specify the GUIDs for which stats should be cleared by populating StreamGuidList.stream_guid. If not populated, stats for all GUIDs are cleared.

Returns Ack

Back to top