Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 87 additions & 1 deletion release/models/system/openconfig-system-grpc.yang
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,17 @@ module openconfig-system-grpc {
to be included in the list.";


oc-ext:openconfig-version "1.1.0";
oc-ext:openconfig-version "1.2.0";
oc-ext:catalog-organization "openconfig";
oc-ext:origin "openconfig";

revision "2026-08-03" {
description
"Add support for mutual TLS, keepalive settings, and
max concurrent streams configuration on gRPC servers.";
reference "1.2.0";
}

revision "2024-05-29" {
description
"Add support for gRPC connections.";
Expand Down Expand Up @@ -104,6 +111,7 @@ module openconfig-system-grpc {
"Operational state relating to the gRPC service.";
uses grpc-server-config;
}
uses grpc-server-keepalive-top;
uses connections-top;
}
}
Expand Down Expand Up @@ -167,6 +175,15 @@ module openconfig-system-grpc {
are not supported, such as lab testing.";
}

leaf tls-mutual {
type boolean;
default false;
description
"When set to true, mutual TLS (mTLS) client certificate verification
is enforced on the gRPC server. The client must present a certificate
validated against the trusted certificate authority.";
}
Comment thread
danielbarney marked this conversation as resolved.
Outdated

leaf certificate-id {
type string;
description
Expand All @@ -184,6 +201,15 @@ module openconfig-system-grpc {
https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-authentication.md#credentials-and-authentication.";
}

leaf max-concurrent-streams {
type uint32 {
range "1..max";
}
description
"Maximum number of concurrent streams permitted per gRPC session
or connection.";
}

leaf-list listen-addresses {
type union {
type oc-inet:ip-address;
Expand All @@ -208,6 +234,66 @@ module openconfig-system-grpc {
}
}

grouping grpc-server-keepalive-config {
description
"Configuration parameters relating to gRPC server keepalive.";

leaf time {
type uint32 {
range "1..max";
}
units "seconds";
description
"Interval in seconds at which the server will send keepalive PING
frames to the client to verify connection health when no activity
is detected.";
}

leaf min-keepalive-interval {
type uint32 {
range "1..max";
}
units "seconds";
description
"Minimum interval in seconds that the server permits a client to wait
between sending keepalive PING frames without receiving a GOAWAY frame
(too_many_pings).";
}

leaf timeout {
type uint32 {
range "1..max";
}
units "seconds";
description
"Time in seconds the server waits for a keepalive PING response
before closing the connection.";
}
}
Comment thread
danielbarney marked this conversation as resolved.
Outdated

grouping grpc-server-keepalive-top {
description
"Structural grouping for gRPC keepalive parameters.";

container keepalive {
description
"Parameters for gRPC keepalive probes and rate limits.";

container config {
description
"Configuration parameters for gRPC keepalive.";
uses grpc-server-keepalive-config;
}

container state {
config false;
description
"Operational state parameters for gRPC keepalive.";
uses grpc-server-keepalive-config;
}
}
}

grouping grpc-counters {
description
"Top-level container for gRPC counters.";
Expand Down
Loading