grpc-dialin.proto 2.22 KB
Newer Older
syntax = "proto3";
package dialin;

service gRPCConfigOper {
    rpc Subscribe(SubsArgs) returns(stream SubsReply) {};
    rpc Cancel(CancelArgs) returns(CancelReply) {};
}

message Path {
    string path = 1;
}

message SubsArgs {
    uint64 request_id = 1;
    uint32 encoding = 2;

    repeated Destination destination = 3;

    //Path to a section of operational state of interest (the sensor).
    repeated Path path = 5;

    //The accuracy of the collected data reported by the device
    //to the collector
    uint64 sample_interval = 6;

    //Maximum time interval in seconds that may pass
    //between updates from a device to a telemetry collector.
    //If this interval expires, but there is no updated data to
    //send (such as if suppress_updates has been configured), the
    //device must send a telemetry message to the collector.
    uint64 heartbeat_interval = 7;

    //Boolean flag to control suppression of redundant
    //telemetry updates to the collector platform. If this flag is
    //set to TRUE, then the collector will only send an update at
    //the configured interval if a subscribed data value has
    //changed. Otherwise, the device will not send an update to
    //the collector until expiration of the heartbeat interval. 
    bool suppress_redundant = 8;

    //range "0..63"
    //The dscp type represents a Differentiated Services Code Point
    //that may be used for marking packets in a traffic stream.
    //In the value set and its semantics, this type is equivalent
    //to the Dscp textual convention of the SMIv2.
    uint32 originated_qos_marking = 9;
}

message Destination {
    // IP address of the telemetry stream destination
    string destination_address = 1;
    
    // Protocol (udp or tcp) port number for the telemetry
    // stream destination
    uint32 destination_port = 2;
}

message SubsReply {
    uint32 subscription_id = 1;
    uint64 request_id = 2;
    string response_code = 3;

    //containing the data described by the Telemetry message
    //defined in hw_telemetry.proto
    bytes message = 4;
}

message CancelArgs {
    uint64 request_id = 1;
    uint32 subscription_id = 2;
}

message CancelReply {
    uint64 request_id = 1;
    string response_code = 2;
    string message = 3;
}