Download OpenAPI specification:Download
The Open Network Experiments API and Data Models
Sets the ONEx configuration.
Array of objects (Host) | |
object (Fabric) | |
object (Dataflow) | |
object (Chaos) Configuration of chaos experiments | |
object (Insights) Configuration of insights providing methods | |
Array of objects (L1SettingsProfile) A list of Layer 1 settings profiles |
{- "hosts": [
- {
- "name": "string",
- "address": "string",
- "prefix": 24,
- "l1_profile_name": "string"
}
], - "fabric": {
- "choice": "clos",
- "clos": {
- "spine": {
- "count": 1,
- "downlink_ecmp_mode": "random_spray",
- "qos_profile_name": "string"
}, - "pods": [
- {
- "count": 1,
- "pod_profile_name": "string"
}
], - "host_links": [
- {
- "host_name": "string",
- "host_type": "external",
- "front_panel_port": 0,
- "choice": "tor",
- "spine": 1,
- "pod": {
- "pod_index": 1,
- "switch_index": 1
}, - "tor": {
- "pod_index": 1,
- "switch_index": 1
}
}
], - "pod_profiles": [
- {
- "name": "string",
- "pod_switch": {
- "count": 1,
- "uplink_ecmp_mode": "random_spray",
- "downlink_ecmp_mode": "random_spray",
- "qos_profile_name": "string"
}, - "tors": [
- {
- "count": 1,
- "tor_profile_name": "string"
}
], - "pod_to_spine_oversubscription": "string"
}
], - "tor_profiles": [
- {
- "name": "string",
- "tor_mode": "layer2",
- "uplink_ecmp_mode": "random_spray",
- "qos_profile_name": "string",
- "tor_to_pod_oversubscription": {
- "ratio": "string",
- "mode": "use_host_capacity",
- "host_capacity": 1
}
}
], - "parallel_fabric_count": 1
}, - "qos_profiles": [
- {
- "name": "string",
- "ingress_admission": {
- "reserved_buffer_bytes": 0,
- "shared_buffer_bytes": 0,
- "priority_list": [
- "0"
]
}, - "scheduler": {
- "scheduler_mode": "strict_priority",
- "weight_list": [
- 0
]
}, - "packet_classification": {
- "map_dscp_to_traffic_class": {
- "property1": "string",
- "property2": "string"
}, - "map_traffic_class_to_queue": {
- "property1": "string",
- "property2": "string"
}
}, - "wred": {
- "queue_list": [
- 0
], - "ecn_marking_enabled": false,
- "min_threshold_bytes": 1,
- "max_threshold_bytes": 2,
- "max_probability_percent": 100
}, - "pfc": {
- "enabled": false,
- "priority_list": [
- 0
], - "headroom_buffer_bytes": 0,
- "resume_threshold_bytes": 0
}
}
]
}, - "dataflow": {
- "host_management": [
- {
- "host_name": "string",
- "nic_rx_buffer": 0,
- "nic_tx_buffer": 0,
- "nic_speed": 0,
- "management_address": "string",
- "nic_name": "string"
}
], - "workload": [
- {
- "name": "string",
- "choice": "scatter",
- "scatter": {
- "sources": [
- "string"
], - "destinations": [
- "string"
], - "flow_profile_name": "string"
}, - "gather": {
- "sources": [
- "string"
], - "destinations": [
- "string"
], - "flow_profile_name": "string"
}, - "loop": {
- "iterations": 0,
- "children": [
- { }
]
}, - "compute": {
- "nodes": [
- "string"
], - "choice": "simulated",
- "simulated": {
- "duration": 0
}
}, - "all_reduce": {
- "nodes": [
- "string"
], - "flow_profile_name": "string",
- "type": "ring"
}, - "broadcast": {
- "sources": [
- "string"
], - "destinations": [
- "string"
], - "flow_profile_name": "string"
}, - "all_to_all": {
- "nodes": [
- "string"
], - "flow_profile_name": "string"
}
}
], - "flow_profiles": [
- {
- "name": "string",
- "data_size": 0,
- "l2_protocol_choice": "ethernet",
- "ethernet": {
- "mtu": 1500
}, - "l4_protocol_choice": "tcp",
- "ip": {
- "dscp": 0
}, - "tcp": {
- "congestion_algorithm": "cubic",
- "initcwnd": 0,
- "send_buf": 0,
- "receive_buf": 0,
- "delayed_ack": 0,
- "selective_ack": true,
- "min_rto": 0,
- "mss": 1500,
- "ecn": true,
- "enable_timestamp": true,
- "destination_port": {
- "choice": "single_value",
- "single_value": {
- "value": 1
}, - "range": {
- "start_value": 1,
- "increment": 1
}
}, - "source_port": {
- "choice": "single_value",
- "single_value": {
- "value": 1
}, - "range": {
- "start_value": 1,
- "increment": 1
}
}
}, - "udp": { }
}
]
}, - "chaos": {
- "background_traffic": {
- "flows": [
- {
- "name": "string",
- "injection_port": "string",
- "choice": "stateless",
- "stateless": {
- "rate": 0,
- "transmission_mode": "continuous",
- "packet": {
- "src_address": "string",
- "dst_address": "string",
- "src_port": 1024,
- "dst_port": 1024,
- "size": 1000,
- "l4_protocol": "tcp",
- "ds_field": {
- "dscp": 0,
- "ecn": 0
}
}, - "burst": {
- "transmit_duration": 0,
- "transmit_gap": 0,
- "unit": "ms"
}
}
}
]
}, - "drop_frames": [
- {
- "name": "string",
- "link": "string",
- "mode": "percentage_time",
- "percentage": 5,
- "interval": 1
}
]
}, - "insights": {
- "port_mirroring": [
- {
- "name": "string",
- "source_port": "string",
- "destination_port": 0,
- "mirror_type": "ingress_frames"
}
]
}, - "layer1_profiles": [
- {
- "name": "string",
- "link_speed": "speed_100_gbps",
- "choice": "autonegotiation",
- "autonegotiation": {
- "advertise_fec": true
}, - "manual": {
- "fec_mode": "reed_solomon"
}
}
]
}
{- "warnings": [
- {
- "message": "string",
- "code": 0,
- "detail": "string"
}
]
}
{- "hosts": [
- {
- "name": "string",
- "address": "string",
- "prefix": 24,
- "l1_profile_name": "string"
}
], - "fabric": {
- "choice": "clos",
- "clos": {
- "spine": {
- "count": 1,
- "downlink_ecmp_mode": "random_spray",
- "qos_profile_name": "string"
}, - "pods": [
- {
- "count": 1,
- "pod_profile_name": "string"
}
], - "host_links": [
- {
- "host_name": "string",
- "host_type": "external",
- "front_panel_port": 0,
- "choice": "tor",
- "spine": 1,
- "pod": {
- "pod_index": 1,
- "switch_index": 1
}, - "tor": {
- "pod_index": 1,
- "switch_index": 1
}
}
], - "pod_profiles": [
- {
- "name": "string",
- "pod_switch": {
- "count": 1,
- "uplink_ecmp_mode": "random_spray",
- "downlink_ecmp_mode": "random_spray",
- "qos_profile_name": "string"
}, - "tors": [
- {
- "count": 1,
- "tor_profile_name": "string"
}
], - "pod_to_spine_oversubscription": "string"
}
], - "tor_profiles": [
- {
- "name": "string",
- "tor_mode": "layer2",
- "uplink_ecmp_mode": "random_spray",
- "qos_profile_name": "string",
- "tor_to_pod_oversubscription": {
- "ratio": "string",
- "mode": "use_host_capacity",
- "host_capacity": 1
}
}
], - "parallel_fabric_count": 1
}, - "qos_profiles": [
- {
- "name": "string",
- "ingress_admission": {
- "reserved_buffer_bytes": 0,
- "shared_buffer_bytes": 0,
- "priority_list": [
- "0"
]
}, - "scheduler": {
- "scheduler_mode": "strict_priority",
- "weight_list": [
- 0
]
}, - "packet_classification": {
- "map_dscp_to_traffic_class": {
- "property1": "string",
- "property2": "string"
}, - "map_traffic_class_to_queue": {
- "property1": "string",
- "property2": "string"
}
}, - "wred": {
- "queue_list": [
- 0
], - "ecn_marking_enabled": false,
- "min_threshold_bytes": 1,
- "max_threshold_bytes": 2,
- "max_probability_percent": 100
}, - "pfc": {
- "enabled": false,
- "priority_list": [
- 0
], - "headroom_buffer_bytes": 0,
- "resume_threshold_bytes": 0
}
}
]
}, - "dataflow": {
- "host_management": [
- {
- "host_name": "string",
- "nic_rx_buffer": 0,
- "nic_tx_buffer": 0,
- "nic_speed": 0,
- "management_address": "string",
- "nic_name": "string"
}
], - "workload": [
- {
- "name": "string",
- "choice": "scatter",
- "scatter": {
- "sources": [
- "string"
], - "destinations": [
- "string"
], - "flow_profile_name": "string"
}, - "gather": {
- "sources": [
- "string"
], - "destinations": [
- "string"
], - "flow_profile_name": "string"
}, - "loop": {
- "iterations": 0,
- "children": [
- { }
]
}, - "compute": {
- "nodes": [
- "string"
], - "choice": "simulated",
- "simulated": {
- "duration": 0
}
}, - "all_reduce": {
- "nodes": [
- "string"
], - "flow_profile_name": "string",
- "type": "ring"
}, - "broadcast": {
- "sources": [
- "string"
], - "destinations": [
- "string"
], - "flow_profile_name": "string"
}, - "all_to_all": {
- "nodes": [
- "string"
], - "flow_profile_name": "string"
}
}
], - "flow_profiles": [
- {
- "name": "string",
- "data_size": 0,
- "l2_protocol_choice": "ethernet",
- "ethernet": {
- "mtu": 1500
}, - "l4_protocol_choice": "tcp",
- "ip": {
- "dscp": 0
}, - "tcp": {
- "congestion_algorithm": "cubic",
- "initcwnd": 0,
- "send_buf": 0,
- "receive_buf": 0,
- "delayed_ack": 0,
- "selective_ack": true,
- "min_rto": 0,
- "mss": 1500,
- "ecn": true,
- "enable_timestamp": true,
- "destination_port": {
- "choice": "single_value",
- "single_value": {
- "value": 1
}, - "range": {
- "start_value": 1,
- "increment": 1
}
}, - "source_port": {
- "choice": "single_value",
- "single_value": {
- "value": 1
}, - "range": {
- "start_value": 1,
- "increment": 1
}
}
}, - "udp": { }
}
]
}, - "chaos": {
- "background_traffic": {
- "flows": [
- {
- "name": "string",
- "injection_port": "string",
- "choice": "stateless",
- "stateless": {
- "rate": 0,
- "transmission_mode": "continuous",
- "packet": {
- "src_address": "string",
- "dst_address": "string",
- "src_port": 1024,
- "dst_port": 1024,
- "size": 1000,
- "l4_protocol": "tcp",
- "ds_field": {
- "dscp": 0,
- "ecn": 0
}
}, - "burst": {
- "transmit_duration": 0,
- "transmit_gap": 0,
- "unit": "ms"
}
}
}
]
}, - "drop_frames": [
- {
- "name": "string",
- "link": "string",
- "mode": "percentage_time",
- "percentage": 5,
- "interval": 1
}
]
}, - "insights": {
- "port_mirroring": [
- {
- "name": "string",
- "source_port": "string",
- "destination_port": 0,
- "mirror_type": "ingress_frames"
}
]
}, - "layer1_profiles": [
- {
- "name": "string",
- "link_speed": "speed_100_gbps",
- "choice": "autonegotiation",
- "autonegotiation": {
- "advertise_fec": true
}, - "manual": {
- "fec_mode": "reed_solomon"
}
}
]
}
Updates the state of ONEx configured experiment(s).
object (State.Chaos) |
{- "chaos": {
- "drop_frames": [
- {
- "config_names": [
- "string"
], - "state": "started"
}
], - "background_traffic": [
- {
- "flow_names": [
- "string"
], - "state": "started"
}
]
}
}
{- "warnings": [
- {
- "message": "string",
- "code": 0,
- "detail": "string"
}
]
}
Gets the requested fabric metrics.
object (PortMetrics.Request) |
{- "port_metrics": {
- "choice": "port_names",
- "port_names": [
- "string"
], - "front_panel_ports": [
- 0
], - "select_metrics": [
- "link_status"
]
}
}
{- "port_metrics": [
- {
- "port_name": "string",
- "meta": {
- "front_panel_port": 0,
- "tx_switch": "string",
- "rx_switch": "string",
- "connected_to": "string",
- "link_name": "string",
- "annotations": "string"
}, - "metrics": {
- "link_status": "link_up",
- "frames_transmitted_all": 0,
- "frames_transmitted_multicast": 0,
- "frames_transmitted_unicast": 0,
- "frames_transmitted_broadcast": 0,
- "frames_transmitted_length_64": 0,
- "frames_transmitted_length_65_127": 0,
- "frames_transmitted_length_128_255": 0,
- "frames_transmitted_length_256_511": 0,
- "frames_transmitted_length_512_1023": 0,
- "frames_transmitted_length_1024_1518": 0,
- "frames_transmitted_length_1519_2047": 0,
- "frames_transmitted_length_2048_4095": 0,
- "bytes_transmitted_all": 0,
- "frames_transmitted_ecn_marked": 0,
- "frames_transmitted_priority_pause": 0,
- "frames_transmitted_pause": 0,
- "frames_received_all": 0,
- "frames_received_multicast": 0,
- "frames_received_unicast": 0,
- "frames_received_broadcast": 0,
- "frames_received_length_64": 0,
- "frames_received_length_65_127": 0,
- "frames_received_length_128_255": 0,
- "frames_received_length_256_511": 0,
- "frames_received_length_512_1023": 0,
- "frames_received_length_1024_1518": 0,
- "frames_received_length_1519_2047": 0,
- "frames_received_length_2048_4095": 0,
- "bytes_received_all": 0,
- "frames_received_errors": 0,
- "frames_received_pause": 0,
- "frames_received_priority_pause": 0,
- "frames_dropped_egress": 0,
- "frames_dropped_ingress": 0,
- "per_egress_queue_metrics": [
- {
- "queue_number": 0,
- "egress_buffer_reserved_usage_current": 0,
- "egress_buffer_total_usage_peak": 0,
- "multicast_buffer_total_usage_peak": 0
}
], - "per_priority_group_metrics": [
- {
- "priority_group": 0,
- "ingress_buffer_reserved_usage_current": 0,
- "ingress_buffer_shared_usage_peak": 0
}
], - "flow_counter_metrics": {
- "per_background_traffic_flow": [
- {
- "flow_name": "string",
- "frames_transmitted": 0
}
]
}
}
}
]
}