i
Contents
Configuring gRPC ·························································································· 3
About gRPC ······················································································································································· 3
gRPC protocol stack layers ························································································································ 3
Network architecture ·································································································································· 3
Telemetry technology based on gRPC ······································································································ 4
Telemetry modes ······································································································································· 4
Telemetry data model architectures ··········································································································· 4
Protocols ···················································································································································· 5
Restrictions and guidelines: gRPC configuration ······························································································· 5
Configuring the gRPC dial-in mode···················································································································· 5
gRPC dial-in mode configuration tasks at a glance ··················································································· 5
Configuring the gRPC service ···················································································································· 5
Configuring a gRPC user ··························································································································· 5
Enabling gRPC logging in dial-in mode······································································································ 6
Configuring the gRPC dial-out mode ················································································································· 7
gRPC dial-out mode configuration tasks at a glance ················································································· 7
Enabling the gRPC service ························································································································ 7
Configuring sensors ··································································································································· 7
Configuring collectors ································································································································· 8
Configuring a subscription ·························································································································· 9
Enabling gRPC logging in dial-out mode ································································································· 11
Displaying gRPC information ··························································································································· 11
gRPC configuration examples ························································································································· 11
Example: Configuring the gRPC dial-in mode ·························································································· 11
Example: Configuring the gRPC dial-out mode ······················································································· 12
Protocol buffer code ····················································································· 14
Protocol buffer code format ······························································································································ 14
Proto definition files ·········································································································································· 15
Proto definition files in dial-in mode ········································································································· 15
Proto definition file in dial-out mode ········································································································· 17
Obtaining proto definition files ·················································································································· 19
Example: Developing a gRPC collector-side application ················································································· 20
Prerequisites ············································································································································ 20
Generating the C++ code for the proto definition files·············································································· 20
Developing the collector-side application (dial-in mode) ·········································································· 20
Developing the collector-side application (dial-out mode)········································································ 33
Appendix A Methods and attributes for gNMI operations ···························· 35
Configuring INT ··························································································· 41
About INT ························································································································································· 41
INT network components ························································································································· 41
INT packet formats ··································································································································· 41
How INT works ········································································································································· 41
Restrictions and guidelines: INT configuration ································································································· 42
Configuring common INT ································································································································· 43
Configuring the exit node ························································································································· 43
Configuring the transit node ····················································································································· 43
Configuring the entry node ······················································································································· 44
Configuring flexible INT ···································································································································· 45
Configuring the exit node ························································································································· 45
Configuring the transit node ····················································································································· 46
Configuring the entry node ······················································································································· 46
Enabling global INT packet dropping ··············································································································· 47
Verifying and maintaining INT ·························································································································· 47
INT configuration examples ····························································································································· 48