Files
harmony/network_stress_test/src/config.rs

78 lines
1.6 KiB
Rust

use std::net::IpAddr;
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
pub struct StressTestConfig {
pub firewalls: Vec<FirewallConfig>,
pub brocade: BrocadeConfig,
pub iperf: IperfConfig,
#[serde(default = "default_duration")]
pub duration_hours: f64,
#[serde(default = "default_web_port")]
pub web_port: u16,
#[serde(default = "default_reset_interval_hours")]
pub reset_interval_hours: f64,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FirewallConfig {
pub ip: IpAddr,
pub user: String,
pub pass: String,
pub role: FirewallRole,
pub api_key: String,
pub api_secret: String,
#[serde(default = "default_api_port")]
pub api_port: u16,
pub switch_ports: Vec<String>,
}
#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum FirewallRole {
Primary,
Backup,
}
#[derive(Debug, Clone, Deserialize)]
pub struct BrocadeConfig {
pub ip: IpAddr,
pub user: String,
pub pass: String,
#[serde(default = "default_ssh_port")]
pub ssh_port: u16,
}
#[derive(Debug, Clone, Deserialize)]
pub struct IperfConfig {
pub target: String,
#[serde(default = "default_iperf_port")]
pub port: u16,
#[serde(default = "default_parallel")]
pub parallel: u32,
pub bandwidth: Option<String>,
}
fn default_duration() -> f64 {
12.0
}
fn default_web_port() -> u16 {
8080
}
fn default_reset_interval_hours() -> f64 {
2.0
}
fn default_api_port() -> u16 {
443
}
fn default_ssh_port() -> u16 {
22
}
fn default_iperf_port() -> u16 {
5201
}
fn default_parallel() -> u32 {
4
}