Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
titlenetworkdiagnostics IDL
collapsetrue
interface NetworkDiagnostics {
    Promise<NetworkDiagnosticsResult> testInternetConnectivity()
    Promise<NetworkDiagnotsticsResult> testNetworkInterface(String interface_name)
    Promise<PingResult> ping(String host_name, PingConfig config)
    //< For BrightSign internal use. Behavior subject to change without notice.
    Promise<TracerouteResult> traceroute(String host_name, TracerouteConfig config)
    //< For BrightSign internal use. Behavior subject to change without notice.
};
 
interface InterfaceTestResult {
    String diagnosis;
    bool    ok;
    Array<Log> log;
};
 
interface Log {
    String name;
    bool pass;
    String result;
    Array<String> info;
    //< For BrightSign internal use. Behaviour subject to change without notice.
};

interface PingConfig {
    unsigned? short count; // default 10
    unsigned long? interval; // in milliseconds, default 100
    unsigned long? timeout; // in seconds, default 10000
    unsigned long? packetsize; // in bytes, default 56
    bool? ipv4; // enable pinging IPv4 addresses, default true
    bool? ipv6; // enable pinging IPv6 addresses, default falsetrue
    bool? allAddresses; // if true then ping all addresses returned from DNS query,
                        // if false then each will be pinged in turn until one responds, default false
};

interface PingResult {
    String hostname; // host name or literal address pinged
    PingResults results;
};

interface PingResults {
    bool up; // true if at least one address responded to at least 50% of the echo requests
    Array<ProtocolPingResult>? ipv4;
    Array<ProtocolPingResult>? ipv6;
};

interface ProtocolPingResult {
    String address; // IP address pinged
    bool up; // true if the address responded to at least 50% of the echo requests
    ProtocolPingReport report;
};

interface ProtocolPingReport {
    unsigned short transmitted; // number of echo requests sent
    unsigned short received; // number of echo replies received
    ProtocolPingStats stats;
};

interface ProtocolPingStats {
    unsigned long quickest; // quickest reply received
    unsigned long average; // average time across all replies from address
    unsigned long slowest; // slowest reply received
    String units; // always "us" to indicate microseconds
};

...