System API

Prev Next

The System API base URL is http://{swXtch-ctrl-ip}:{port}

Monitoring

monitoring/components

  • Components state index including static data and metrics

Endpoint:

<base_url>/swx/monitoring/components

Request:

json {List of swxtch control TCP addresses to filter by}

{
  "swxtchAddresses": [
    "IP1",
    "IP2",
    .
  ]
}
  • If the list is empty (i.e. []), the endpoint will list all the known cloudSwXtches.

Response:

json

Example Response: On AWS asking for the list of all cloudSwXtches available in the environment →

$ curl 172.31.25.214/swx/monitoring/components -d '{ "swxtchAddresses": [] }'
{
    "172.31.16.54": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {},
                "tx": {}
            },
            "streamLinks": {
                "ens6": {
                    "egress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.107.182:48045 | AdjacentDst = 172.31.103.162:9999": {
                            "adjacentComponentId": "172.31.25.214",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197310528,
                            "byteRate": 190653,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1027659,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1027659,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296190830797947
                        }
                    },
                    "ingress": {}
                }
            },
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxRates": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "timestamp": 1762296190830775038,
                    "txCounters": {
                        "byteCount": 197310528,
                        "packetCount": 1027659
                    },
                    "txDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txRates": {
                        "byteCount": 190653,
                        "packetCount": 993
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "xnic",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-16-54",
                "instanceTypeName": "m5.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.16.54",
                        "mac": "0a:ff:e7:c0:0d:5b",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.107.182",
                        "mac": "0a:ff:ed:44:79:d1",
                        "masterOf": null,
                        "mtu": 3900,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "swx0": {
                        "broadcastIp": "172.30.15.255",
                        "driverName": null,
                        "index": 4,
                        "ip": "172.30.0.54",
                        "mac": "d6:2f:de:ce:3f:1d",
                        "masterOf": null,
                        "mtu": 4096,
                        "name": "swx0",
                        "pciAddress": null,
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.30.0.0/20",
                        "vpc": null
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.16.54",
            "name": "ip-172-31-16-54"
        }
    },
    "172.31.17.125": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {},
                "tx": {}
            },
            "streamLinks": {
                "ens6": {
                    "egress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.97.142:56282 | AdjacentDst = 172.31.101.149:9999": {
                            "adjacentComponentId": "172.31.18.246",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197682048,
                            "byteRate": 190618,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1029594,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1029594,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296191009586051
                        }
                    },
                    "ingress": {}
                }
            },
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxRates": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "timestamp": 1762296191009564781,
                    "txCounters": {
                        "byteCount": 197682048,
                        "packetCount": 1029594
                    },
                    "txDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txRates": {
                        "byteCount": 190618,
                        "packetCount": 993
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "xnic",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-17-125",
                "instanceTypeName": "m5.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.17.125",
                        "mac": "0a:ff:c5:39:de:d7",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.97.142",
                        "mac": "0a:ff:df:28:b8:77",
                        "masterOf": null,
                        "mtu": 3900,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "swx0": {
                        "broadcastIp": "172.30.15.255",
                        "driverName": null,
                        "index": 4,
                        "ip": "172.30.1.125",
                        "mac": "2e:20:5e:93:ad:4b",
                        "masterOf": null,
                        "mtu": 4096,
                        "name": "swx0",
                        "pciAddress": null,
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.30.0.0/20",
                        "vpc": null
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.17.125",
            "name": "ip-172-31-17-125"
        }
    },
    "172.31.17.56": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {},
                "tx": {}
            },
            "streamLinks": {
                "ens6": {
                    "egress": {},
                    "ingress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.101.149:4877 | AdjacentDst = 172.31.105.44:9999": {
                            "adjacentComponentId": "172.31.18.246",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197718144,
                            "byteRate": 190602,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1029782,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1029782,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296191199707537
                        }
                    }
                }
            },
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 197718144,
                        "packetCount": 1029782
                    },
                    "rxDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxRates": {
                        "byteCount": 190602,
                        "packetCount": 993
                    },
                    "timestamp": 1762296191199687810,
                    "txCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txRates": {
                        "byteCount": 0,
                        "packetCount": 0
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "xnic",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-17-56",
                "instanceTypeName": "m5.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.17.56",
                        "mac": "0a:ff:db:e3:36:0f",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.105.44",
                        "mac": "0a:ff:fa:52:62:2b",
                        "masterOf": null,
                        "mtu": 3900,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "swx0": {
                        "broadcastIp": "172.30.15.255",
                        "driverName": null,
                        "index": 4,
                        "ip": "172.30.1.56",
                        "mac": "12:f3:28:6c:a3:98",
                        "masterOf": null,
                        "mtu": 4096,
                        "name": "swx0",
                        "pciAddress": null,
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.30.0.0/20",
                        "vpc": null
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.17.56",
            "name": "ip-172-31-17-56"
        }
    },
    "172.31.18.246": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {},
                "tx": {}
            },
            "streamLinks": {
                "ens6": {
                    "egress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.101.149:4877 | AdjacentDst = 172.31.105.44:9999": {
                            "adjacentComponentId": "172.31.17.56",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197802240,
                            "byteRate": 190603,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1030220,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1030220,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296191639664480
                        }
                    },
                    "ingress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.1.125:60286 | AdjacentSrc = 172.31.97.142:56282 | AdjacentDst = 172.31.101.149:9999": {
                            "adjacentComponentId": "172.31.17.125",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197788800,
                            "byteRate": 190603,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1030150,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1030150,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296191569164470
                        }
                    }
                }
            },
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 197788800,
                        "packetCount": 1030150
                    },
                    "rxDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxRates": {
                        "byteCount": 189265,
                        "packetCount": 986
                    },
                    "timestamp": 1762296191653150411,
                    "txCounters": {
                        "byteCount": 197802240,
                        "packetCount": 1030220
                    },
                    "txDropCounters": null,
                    "txRates": {
                        "byteCount": 190705,
                        "packetCount": 993
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "swxtch",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-18-246",
                "instanceTypeName": "m6i.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.18.246",
                        "mac": "0a:ff:f8:a8:ee:5f",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.101.149",
                        "mac": "0a:ff:c1:b5:60:eb",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.18.246",
            "name": "ip-172-31-18-246"
        }
    },
    "172.31.23.166": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {},
                "tx": {}
            },
            "streamLinks": {
                "ens6": {
                    "egress": {},
                    "ingress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.103.162:4877 | AdjacentDst = 172.31.111.50:9999": {
                            "adjacentComponentId": "172.31.25.214",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197400192,
                            "byteRate": 190620,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1028126,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1028126,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296191302223705
                        }
                    }
                }
            },
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 197400192,
                        "packetCount": 1028126
                    },
                    "rxDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxRates": {
                        "byteCount": 190620,
                        "packetCount": 993
                    },
                    "timestamp": 1762296191302200904,
                    "txCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txRates": {
                        "byteCount": 0,
                        "packetCount": 0
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "xnic",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-23-166",
                "instanceTypeName": "m5.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.23.166",
                        "mac": "0a:ff:ef:92:c5:fb",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.111.50",
                        "mac": "0a:ff:cd:94:db:b7",
                        "masterOf": null,
                        "mtu": 3900,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "swx0": {
                        "broadcastIp": "172.30.15.255",
                        "driverName": null,
                        "index": 4,
                        "ip": "172.30.7.166",
                        "mac": "22:c1:d2:68:60:1c",
                        "masterOf": null,
                        "mtu": 4096,
                        "name": "swx0",
                        "pciAddress": null,
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.30.0.0/20",
                        "vpc": null
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.23.166",
            "name": "ip-172-31-23-166"
        }
    },
    "172.31.25.214": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {
                    "172.31.106.148-172.31.103.162": {
                        "adjacentComponentId": "172.31.29.118",
                        "adjacentComponentNetworkInterfaceName": "ens6",
                        "metrics": {
                            "lostPacketCount": 0,
                            "originalPacketCount": 0,
                            "retryPacketCount": 0,
                            "rtt": 142476,
                            "rttVariance": 8456
                        },
                        "networkInterfaceName": "ens6"
                    }
                },
                "tx": {
                    "172.31.103.162-172.31.106.148": {
                        "adjacentComponentId": "172.31.29.118",
                        "adjacentComponentNetworkInterfaceName": "ens6",
                        "metrics": {
                            "originalPacketCount": 0,
                            "retryPacketCount": 0,
                            "rtt": 137192,
                            "rttVariance": 1732
                        },
                        "networkInterfaceName": "ens6"
                    }
                }
            },
            "streamLinks": {
                "ens6": {
                    "egress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.103.162:4877 | AdjacentDst = 172.31.111.50:9999": {
                            "adjacentComponentId": "172.31.23.166",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197214720,
                            "byteRate": 190653,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1027160,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1027160,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296190327693211
                        }
                    },
                    "ingress": {
                        "Group = 239.1.1.1:10000 | Source = 172.30.0.54:38519 | AdjacentSrc = 172.31.107.182:48045 | AdjacentDst = 172.31.103.162:9999": {
                            "adjacentComponentId": "172.31.16.54",
                            "adjacentComponentNetworkInterfaceName": "ens6",
                            "byteCount": 197204160,
                            "byteRate": 190653,
                            "fragmentationMetrics": {
                                "averageFragmentCount": 1,
                                "fragmentCount": 1027105,
                                "packetCount": 0,
                                "packetRate": 0
                            },
                            "haPathId": null,
                            "networkInterfaceName": "ens6",
                            "packetCount": 1027105,
                            "packetRate": 993,
                            "protocolName": "xMC",
                            "timestamp": 1762296190272277005
                        }
                    }
                }
            },
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 197204160,
                        "packetCount": 1027105
                    },
                    "rxDropCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxRates": {
                        "byteCount": 192225,
                        "packetCount": 1001
                    },
                    "timestamp": 1762296190330757487,
                    "txCounters": {
                        "byteCount": 197214720,
                        "packetCount": 1027160
                    },
                    "txDropCounters": null,
                    "txRates": {
                        "byteCount": 191073,
                        "packetCount": 995
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "swxtch",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-25-214",
                "instanceTypeName": "m6i.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.25.214",
                        "mac": "0a:ff:e4:b4:bf:23",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.103.162",
                        "mac": "0a:ff:ef:a0:10:47",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.25.214",
            "name": "ip-172-31-25-214"
        }
    },
    "172.31.29.118": {
        "metrics": {
            "ha": {
                "aggregations": null,
                "streams": []
            },
            "slp": {
                "rx": {
                    "172.31.103.162-172.31.106.148": {
                        "adjacentComponentId": "172.31.25.214",
                        "adjacentComponentNetworkInterfaceName": "ens6",
                        "metrics": {
                            "lostPacketCount": 0,
                            "originalPacketCount": 0,
                            "retryPacketCount": 0,
                            "rtt": 139428,
                            "rttVariance": 1580
                        },
                        "networkInterfaceName": "ens6"
                    }
                },
                "tx": {
                    "172.31.106.148-172.31.103.162": {
                        "adjacentComponentId": "172.31.25.214",
                        "adjacentComponentNetworkInterfaceName": "ens6",
                        "metrics": {
                            "originalPacketCount": 0,
                            "retryPacketCount": 0,
                            "rtt": 136178,
                            "rttVariance": 1924
                        },
                        "networkInterfaceName": "ens6"
                    }
                }
            },
            "streamLinks": {},
            "totals": {
                "ens6": {
                    "rxCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "rxDropCounters": null,
                    "rxRates": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "timestamp": 1762296191649550784,
                    "txCounters": {
                        "byteCount": 0,
                        "packetCount": 0
                    },
                    "txDropCounters": null,
                    "txRates": {
                        "byteCount": 0,
                        "packetCount": 0
                    }
                }
            }
        },
        "state": {
            "componentKindCode": "bridge",
            "environment": {
                "cloudName": "AWS",
                "hostname": "ip-172-31-29-118",
                "instanceTypeName": "m6i.xlarge",
                "osDistribution": "Ubuntu 24.04",
                "regionName": "us-east-1"
            },
            "hardware": {
                "nics": {
                    "ens5": {
                        "broadcastIp": "172.31.31.255",
                        "driverName": "ena",
                        "index": 2,
                        "ip": "172.31.29.118",
                        "mac": "0a:ff:f1:b9:20:4f",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens5",
                        "pciAddress": "0000:00:05.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.16.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    },
                    "ens6": {
                        "broadcastIp": "172.31.111.255",
                        "driverName": "ena",
                        "index": 3,
                        "ip": "172.31.106.148",
                        "mac": "0a:ff:d6:e1:c9:b9",
                        "masterOf": null,
                        "mtu": 9001,
                        "name": "ens6",
                        "pciAddress": "0000:00:06.0",
                        "publicIp": null,
                        "subnetMask": "255.255.240.0",
                        "subnetPrefix": "172.31.96.0/20",
                        "vpc": "vpc-0432c512c8de7a80b"
                    }
                },
                "vpcs": {
                    "ens5": "vpc-0432c512c8de7a80b",
                    "ens6": "vpc-0432c512c8de7a80b"
                }
            },
            "id": "172.31.29.118",
            "name": "ip-172-31-29-118"
        }
    }
}

Flows

/swx/flows/deployFlow

  • Create and deploy an adaptors flow configuration

Endpoint:

<base_url>/swx/flows/deployFlow

Request:

json

{
  "flowConfig": {
    "destinations": [
      {
        "adaptorConfig": {
          "active": "string",
          "options": [
            {
              "name": "string",
              "value": "string"
            }
          ],
          "protocolCode": "string",
          "socketIp": "string",
          "socketPort": 0
        },
        "bridgeAddress": "string",
        "id": "string",
        "swxtchAddress": "string"
      }
    ],
    "flowName": "string",
    "id": "string",
    "source": {
      "adaptorConfig": {
        "active": "string",
        "options": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "protocolCode": "string",
        "socketIp": "string",
        "socketPort": 0
      },
      "bridgeAddress": "string",
      "swxtchAddress": "string"
    },
    "spaceName": "string",
    "streamIp": "string",
    "streamPort": 0
  },
  "propagationResults": {
    "error": "string",
    "resultItems": [
      {
        "error": "string",
        "result": "string",
        "swxtchAddress": "string"
      }
    ]
  }
}

Response:

200 json

Example Response: Create a simple Flow consisting of a multicast source and two UDP destinations→

$ curl 172.31.25.214/swx/flows/deployFlow -d '{"flowConfig":{"id":null,"flowName":"testFlow","streamIp":"239.1.1.1","streamPort":10000,"destinations":[{"swxtchAddress":"172.31.25.214:80","bridgeAddress":null,"adaptorConfig":{"protocolCode":"udp","socketIp":"172.31.23.166","socketPort":10001,"options":[],"active":true}},{"swxtchAddress":"172.31.25.214:80","bridgeAddress":null,"adaptorConfig":{"protocolCode":"udp","socketIp":"172.31.23.166","socketPort":10002,"options":[],"active":true}}]}}'
{
    "flowConfig": {
        "id": "4e3340e4-3d09-c4a3-588d-951c882b2bad",
        "flowName": "testFlow",
        "spaceName": "flow.4e3340e4-3d09-c4a3-588d-951c882b2bad",
        "streamIp": "239.1.1.1",
        "streamPort": 10000,
        "source": null,
        "destinations": [
            {
                "id": "38e45d0b-d4f5-4581-5e8b-1803f39a34ce",
                "swxtchAddress": "172.31.25.214:80",
                "bridgeAddress": null,
                "adaptorConfig": {
                    "protocolCode": "udp",
                    "socketIp": "172.31.23.166",
                    "socketPort": 10001,
                    "options": [],
                    "active": true
                }
            },
            {
                "id": "0673abf7-2b07-b38c-a751-9dcea412fb6a",
                "swxtchAddress": "172.31.25.214:80",
                "bridgeAddress": null,
                "adaptorConfig": {
                    "protocolCode": "udp",
                    "socketIp": "172.31.23.166",
                    "socketPort": 10002,
                    "options": [],
                    "active": true
                }
            }
        ]
    },
    "propagationResults": {
        "resultItems": [
            {
                "swxtchAddress": "http://172.31.25.214:80/propagate",
                "result": null,
                "error": null
            }
        ],
        "error": null,
        "hasItemErrors": false,
        "itemErrorCount": 0
    }
}

/swx/flows/destroyFlow

  • Destroy a flow deployment

Endpoint:

<base_url>/swx/flows/destroyFlow

Request:

json

{
  "flowId": "string"
}

Response:

200 OK

500 Error: flow cannot be found

Example Response: →

$ curl 172.31.25.214/swx/flows/destroyFlow -d '{ "flowId": "add97709-217a-b06d-17e9-fca647c3b123" }'
{
    "resultItems": [
        {
            "swxtchAddress": "http://172.31.25.214:80/propagate",
            "result": [],
            "error": null
        }
    ],
    "error": null,
    "hasItemErrors": false,
    "itemErrorCount": 0
}

/swx/flows/flowState

  • Report a flow's deployment state

Endpoint:

<base_url>/swx/flows/flowState

Request:

json

{
  "flowId": "string"
}

Response:

200 OK

500 Error: flow cannot be found

Example Response: Get the current state of a given flow→

$ curl 172.31.25.214/swx/flows/flowState -d '{ "flowId": "add97709-217a-b06d-17e9-fca647c3b123" }'
{
    "flowConfig": {
        "id": "add97709-217a-b06d-17e9-fca647c3b123",
        "flowName": "testFlow",
        "spaceName": "flow.add97709-217a-b06d-17e9-fca647c3b123",
        "streamIp": "239.1.1.1",
        "streamPort": 10000,
        "source": null,
        "destinations": [
            {
                "id": "92341862-5968-1bfa-5b40-bd02fe9c51df",
                "swxtchAddress": "172.31.25.214:80",
                "bridgeAddress": null,
                "adaptorConfig": {
                    "protocolCode": "udp",
                    "socketIp": "172.31.111.50",
                    "socketPort": 10001,
                    "options": [],
                    "active": true
                }
            }
        ]
    },
    "source": null,
    "destinations": {
        "92341862-5968-1bfa-5b40-bd02fe9c51df": {
            "adaptorId": "17711257960751278390",
            "errorMessage": null,
            "backendStatus": {
                "isActive": false,
                "isConnected": false,
                "socketIp": "172.31.111.50"
            }
        }
    },
    "communicationErrors": {}
}

/swx/flows/listFlowConfig

  • Return a list of flow configs visible in this environment

Endpoint:

<base_url>/swx/flows/listFlowConfig

Request:

Empty

Response:

200 OK

Example Response: List existing flows on a given cloudSwXtch. Only one flow present with one destination.

$ curl 172.31.25.214/swx/flows/listFlowConfig
[
    {
        "id": "add97709-217a-b06d-17e9-fca647c3b123",
        "flowName": "testFlow",
        "spaceName": "flow.add97709-217a-b06d-17e9-fca647c3b123",
        "streamIp": "239.1.1.1",
        "streamPort": 10000,
        "source": null,
        "destinations": [
            {
                "id": "92341862-5968-1bfa-5b40-bd02fe9c51df",
                "swxtchAddress": "172.31.25.214:80",
                "bridgeAddress": null,
                "adaptorConfig": {
                    "protocolCode": "udp",
                    "socketIp": "172.31.111.50",
                    "socketPort": 10001,
                    "options": [],
                    "active": true
                }
            }
        ]
    }
]

Clusters

/swx/clusters/deployCluster

  • Create and deploy cluster configuration

Endpoint:

<base_url>/swx/clusters/deployCluster

Request:

json

{
  "clusterConfig": {
    "clusterId": "string",
    "dynamicSegmentAssignment": "string",
    "name": "string",
    "segmentation": "string",
    "segments": [
      {
        "groupRanges": [
          "string"
        ],
        "name": "string",
        "rootNode": {
          "address": "string",
          "children": [
            {}
          ]
        },
        "segmentId": "string",
        "spaceName": "string",
        "swxtchAddresses": [
          "string"
        ]
      }
    ],
    "spaceName": "string",
    "tagName": "string"
  }
}

Response:

200 OK

json error

Example Response: Create a simple static Cluster consisting of a single cloudSwXtch

$ curl 172.31.18.246/swx/clusters/deployCluster -d '{"clusterConfig":{"name":"testCluster","tagName":"","segments":[{"name":"testCluster","swxtchAddresses":null,"rootNode":{"address":"172.31.18.246:80","children":[],"addressOption":{"key":"172.31.18.246:80","value":"172.31.18.246:80","label":"172.31.18.246:80 (ip-172-31-18-246)"}},"groupRanges":null}],"segmentation":false,"dynamicSegmentAssignment":false}}'
{
    "clusterConfig": {
        "clusterId": "7f2d8a89-af11-3391-493f-4ac398c050c0",
        "name": "testCluster",
        "spaceName": "cluster.7f2d8a89-af11-3391-493f-4ac398c050c0",
        "tagName": "",
        "segmentation": false,
        "segments": [
            {
                "segmentId": "d310ba9b-389a-f5b7-b214-0de468888914",
                "name": "testCluster",
                "swxtchAddresses": null,
                "rootNode": {
                    "address": "172.31.18.246:80",
                    "children": []
                },
                "spaceName": "segment.7f2d8a89-af11-3391-493f-4ac398c050c0",
                "groupRanges": null
            }
        ],
        "dynamicSegmentAssignment": false
    },
    "propagationResult": {
        "resultItems": [
            {
                "swxtchAddress": "http://172.31.18.246:80/propagate",
                "result": null,
                "error": null
            }
        ],
        "error": null,
        "hasItemErrors": false,
        "itemErrorCount": 0
    }
}

/swx/clusters/deployHa

  • Create an HA configuration

Endpoint:

<base_url>/swx/clusters/deployHa

Request:

json. The paths list should be between 2 and 8 elements long.

{
  "configName": "string",
  "pairNodes": "string",
  "paths": [
    {
      "clusterId": "string",
      "color": "string",
      "name": "string"
    },
    {
      "clusterId": "string",
      "color": "string",
      "name": "string"
    },
.
.
  ]
}

Response:

200 OK

json error: The swxtch is already participating in an HA deployment named ‘string’

json error: Could not resolve a cluster configuration with id ‘string’ visible to this node.

Example Response:  Create an HA array consisting of two Clusters

$ curl 172.31.25.214/swx/clusters/deployHa -d '{"configName":"testHAArray","paths":[{"clusterId":"7f2d8a89-af11-3391-493f-4ac398c050c0","name":"testPathRed","color":"#fc0303","addresses":["172.31.18.246:80"]},{"clusterId":"c734ed74-4a84-8f0a-9e27-d8807c4fdd7e","name":"testPathBlue","color":"#033dfc","addresses":["172.31.25.214:80"]}],"pairNodes":true}'
{
    "haConfig": {
        "configId": "50696999-26ee-5b44-4a56-66fa2aed35bb",
        "configName": "testHAArray",
        "paths": [
            {
                "index": 0,
                "name": "testPathRed",
                "color": "#fc0303",
                "clusterConfig": {
                    "clusterId": "7f2d8a89-af11-3391-493f-4ac398c050c0",
                    "name": "testCluster",
                    "spaceName": "cluster.7f2d8a89-af11-3391-493f-4ac398c050c0",
                    "tagName": "",
                    "segmentation": false,
                    "segments": [
                        {
                            "segmentId": "d310ba9b-389a-f5b7-b214-0de468888914",
                            "name": "testCluster",
                            "swxtchAddresses": null,
                            "rootNode": {
                                "address": "172.31.18.246:80",
                                "children": []
                            },
                            "spaceName": "segment.7f2d8a89-af11-3391-493f-4ac398c050c0",
                            "groupRanges": null
                        }
                    ],
                    "dynamicSegmentAssignment": false
                }
            },
            {
                "index": 1,
                "name": "testPathBlue",
                "color": "#033dfc",
                "clusterConfig": {
                    "clusterId": "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                    "name": "testCluster2",
                    "spaceName": "cluster.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                    "tagName": "",
                    "segmentation": false,
                    "segments": [
                        {
                            "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f",
                            "name": "testCluster2",
                            "swxtchAddresses": null,
                            "rootNode": {
                                "address": "172.31.25.214:80",
                                "children": []
                            },
                            "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                            "groupRanges": null
                        }
                    ],
                    "dynamicSegmentAssignment": false
                }
            }
        ],
        "pairNodes": true
    },
    "propagationResults": {
        "7f2d8a89-af11-3391-493f-4ac398c050c0": {
            "resultItems": [
                {
                    "swxtchAddress": "http://172.31.18.246:80/propagate",
                    "result": null,
                    "error": null
                }
            ],
            "error": null,
            "hasItemErrors": false,
            "itemErrorCount": 0
        },
        "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e": {
            "resultItems": [
                {
                    "swxtchAddress": "http://172.31.25.214:80/propagate",
                    "result": null,
                    "error": null
                }
            ],
            "error": null,
            "hasItemErrors": false,
            "itemErrorCount": 0
        }
    }
}

/swx/clusters/destroyCluster

  • Destroy a cluster configuration and tear down deployment

Endpoint:

<base_url>/swx/clusters/destroyCluster

Request:

json {List of swxtch control TCP addresses to filter by}

{
  "clusterId": "string"
}

Response:

200 OK

500 errorMessage: "Could not resolve a cluster configuration with id ‘string’ visible to this node.

Example Response: Destroy a Cluster

$ curl 172.31.25.214/swx/clusters/destroyCluster -d '{ "clusterId": "7f2d8a89-af11-3391-493f-4ac398c050c0" }'
{
    "resultItems": [
        {
            "swxtchAddress": "http://172.31.18.246:80/propagate",
            "result": null,
            "error": null
        }
    ],
    "error": null,
    "hasItemErrors": false,
    "itemErrorCount": 0
}

/swx/clusters/destroyHa

  • Destroy an HA configuration and tear down deployment

Endpoint:

<base_url>/swx/clusters/destroyHa

Request:

json ID of the HA array to be destroyed

{
  "configId": "string"
}

Response:

200 OK

500 errorMessage: Could not find an HA config with id ‘string’ visible to the current node

Example Response: Destroy an HA array

$ curl 172.31.18.246/swx/clusters/destroyHa -d '{ "configId": [50696999-26ee-5b44-4a56-66fa2aed35bb] }'
{
    "resultItems": [
        {
            "swxtchAddress": "http://172.31.25.214:80/propagate",
            "result": null,
            "error": null
        },
        {
            "swxtchAddress": "http://172.31.18.246:80/propagate",
            "result": null,
            "error": null
        }
    ],
    "error": null,
    "hasItemErrors": false,
    "itemErrorCount": 0
}

/swx/clusters/retrieveHaConfig

  • Return a given HA configuration

Endpoint:

<base_url>/swx/clusters/retrieveHaConfig

Request:

json ID of the target HA Array

{
  "configId": "string"
}

Response:

200 OK json

500 errorMessage: Could not find an HA config with id ‘string’ visible to the current node

Example Response:  Get info on a given HA Array

$ curl 172.31.25.214/swx/clusters/retrieveHaConfig -d '{ "configId": "c3fd6c0c-b0c8-30b9-0874-7d58dd366674" }'
{
    "configId": "c3fd6c0c-b0c8-30b9-0874-7d58dd366674",
    "configName": "testHAArray",
    "paths": [
        {
            "index": 0,
            "name": "testPathRed",
            "color": "#fc0303",
            "clusterConfig": {
                "clusterId": "f5f0e5d3-285c-a6ed-03c1-c81fdd7a4542",
                "name": "testCluster",
                "spaceName": "cluster.f5f0e5d3-285c-a6ed-03c1-c81fdd7a4542",
                "tagName": "",
                "segmentation": false,
                "segments": [
                    {
                        "segmentId": "88657df7-3ba7-57d9-92e5-20f7671ea514",
                        "name": "testCluster",
                        "swxtchAddresses": null,
                        "rootNode": {
                            "address": "172.31.18.246:80",
                            "children": []
                        },
                        "spaceName": "segment.f5f0e5d3-285c-a6ed-03c1-c81fdd7a4542",
                        "groupRanges": null
                    }
                ],
                "dynamicSegmentAssignment": false
            }
        },
        {
            "index": 1,
            "name": "testPathBlue",
            "color": "#033dfc",
            "clusterConfig": {
                "clusterId": "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                "name": "testCluster2",
                "spaceName": "cluster.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                "tagName": "",
                "segmentation": false,
                "segments": [
                    {
                        "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f",
                        "name": "testCluster2",
                        "swxtchAddresses": null,
                        "rootNode": {
                            "address": "172.31.25.214:80",
                            "children": []
                        },
                        "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                        "groupRanges": null
                    }
                ],
                "dynamicSegmentAssignment": false
            }
        }
    ],
    "pairNodes": true
}

/swx/clusters/state

  • Return a given cluster's configuration and deployment state

Endpoint:

<base_url>/swx/clusters/state

Request:

json A list of the target Clusters

{
  "clusterIds": [
    "ID1",
    "ID2",
    .
  ]
}

Response:

200 OK json

Example Response: Get information about two Clusters

$ curl 172.31.25.214/swx/clusters/state -d '{"clusterIds":["7f2d8a89-af11-3391-493f-4ac398c050c0","c734ed74-4a84-8f0a-9e27-d8807c4fdd7e"]}'
[
    {
        "clusterConfig": {
            "clusterId": "c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
            "name": "testCluster2",
            "spaceName": "cluster.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
            "tagName": "",
            "segmentation": false,
            "segments": [
                {
                    "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f",
                    "name": "testCluster2",
                    "swxtchAddresses": null,
                    "rootNode": {
                        "address": "172.31.25.214:80",
                        "children": []
                    },
                    "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                    "groupRanges": null
                }
            ],
            "dynamicSegmentAssignment": false
        },
        "segmentStates": [
            {
                "segmentConfig": {
                    "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f",
                    "name": "testCluster2",
                    "swxtchAddresses": null,
                    "rootNode": {
                        "address": "172.31.25.214:80",
                        "children": []
                    },
                    "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                    "groupRanges": null
                },
                "members": {
                    "http://172.31.25.214:80/propagate": {
                        "memberInfo": {
                            "destinations": {},
                            "swxtchSubscriptions": {},
                            "tree": {
                                "address": "http://172.31.25.214:80/propagate",
                                "children": null
                            },
                            "visibleSwxtches": {
                                "http://172.31.25.214:80/propagate": []
                            },
                            "fullyConnected": true,
                            "config": {
                                "segmentId": "30cbcdf3-ae4b-9e2c-0537-c25beca6ab7f",
                                "name": "testCluster2",
                                "swxtchAddresses": null,
                                "rootNode": {
                                    "address": "172.31.25.214:80",
                                    "children": []
                                },
                                "spaceName": "segment.c734ed74-4a84-8f0a-9e27-d8807c4fdd7e",
                                "groupRanges": null
                            }
                        },
                        "joinStatusErrorMessage": null
                    }
                }
            }
        ]
    }
]