CINXE.COM

OpenConfig and gRPC Junos Telemetry Interface

<!DOCTYPE html> <html lang="en"> <head id="Head1"><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><title> OpenConfig and gRPC Junos Telemetry Interface </title><meta name="KEYWORDS" content="MEMBERS, MEMBER DIRECTORY, WEB 2.0, SOCIAL, NETWORKING, BLOG, BLOGS, CONTACT" /><meta name='audience' content='ALL' /><meta name='rating' content='General' /><meta name='distribution' content='Global, Worldwide' /><meta name='copyright' content='Higher Logic, LLC' /><meta name='content-language' content='EN' /><meta name='referrer' content='strict-origin-when-cross-origin' /><meta name="google-site-verification" content="7cNyU2LCGSJgBXrjGTF2G-CalXo2PXNvZNJR6iF0z34"> <link rel="shortcut icon" href="https://www.juniper.net/favicon.ico"><link rel='SHORTCUT ICON' href='https://higherlogicdownload.s3.amazonaws.com/JUNIPER/408c9b7a-bee4-4bc8-8751-68fe11d01b6a/UploadedImages/juniper.ico' type='image/ico' /><link href='https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/Font-Awesome/6.4.2-pro/css/all.min.css' type='text/css' rel='stylesheet' /><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism.min.css" integrity="sha512-tN7Ec6zAFaVSG3TpNAKtk4DOHNpSwKHxxrsiw4GHKESGPs5njn/0sMCUMl2svV4wo4BK/rCP7juYz+zx+l6oeQ==" crossorigin="anonymous" referrerpolicy="no-referrer" /><link href='https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/bootstrap/3.4.1/css/bootstrap.min.css' rel='stylesheet' /><link type='text/css' rel='stylesheet' href='https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/Bundles/Desktop_bundle.min.d7804150d2a3d23b0f7bd53234959d21d94a14f1.hash.css'/><link href='https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/jquery-ui.css' type='text/css' rel='stylesheet' /><link href='https://d132x6oi8ychic.cloudfront.net/higherlogic/microsite/generatecss/bc2fa343-ccd2-4775-884a-f1ad10dc9457/d113dfa4-a8ac-43ae-80a5-d2d034684850/638657980416470000/34' type='text/css' rel='stylesheet' /><link type='text/css' rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap' /><link type='text/css' rel='stylesheet' href='https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css' /><link type='text/css' rel='stylesheet' href='https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick-theme.css' /><script type='text/javascript' src='https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/JavaScript/promise-fetch-polyfill.js'></script><script type='text/javascript' src='https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/JavaScript/systemjs/3.1.6/system.min.js'></script><script type='systemjs-importmap' src='/HigherLogic/JavaScript/importmapping-cdn.json?638682792399165657'></script><script type='text/javascript' src='https://d3gliviwslgzfo.cloudfront.net/WebRoot/stable/Bundles/hlq-2024-05-08.js'></script><script src='https://d3gliviwslgzfo.cloudfront.net/WebRoot/stable/Bundles/hlqmigrate-2024-05-08.js'></script><script type='text/javascript' src='https://d3gliviwslgzfo.cloudfront.net/WebRoot/stable/Bundles/hlqui-2024-05-08.js'></script><script src='https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/bootstrap/3.4.1/js/bootstrap.min.js'></script><script type='text/javascript'>var higherlogic_crestApi_origin = 'https://api.connectedcommunity.org'</script><script type='text/javascript' src='/HigherLogic/CORS/easyXDM/easyXDM.Min.js'></script><script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/prism.min.js" integrity="sha512-axJX7DJduStuBB8ePC8ryGzacZPr3rdLaIDZitiEgWWk2gsXxEFlm4UW0iNzj2h3wp5mOylgHAzBzM4nRSvTZA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/plugins/autoloader/prism-autoloader.min.js" integrity="sha512-xCfKr8zIONbip3Q1XG/u5x40hoJ0/DtP1bxyMEi0GWzUFoUffE+Dfw1Br8j55RRt9qG7bGKsh+4tSb1CvFHPSA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script><script type='text/javascript' src='https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/Bundles/Desktop_bundle.min.a15963cc8802bf5ef87ffb22f53b2f3528e2cc6f.hash.js'></script><script type='text/javascript' src='https://use.fortawesome.com/863ec992.js'></script><script type='text/javascript' src='https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js'></script><script>window.CDN_PATH = 'https://d3uf7shreuzboy.cloudfront.net'</script><script>var filestackUrl = 'https://static.filestackapi.com/filestack-js/3.28.0/filestack.min.js'; var filestackUrlIE11 = 'https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/JavaScript/filestack.ie11.min.js';</script><style type="text/css"> /* <![CDATA[ */ #AuxMenu img.icon { border-style:none;vertical-align:middle; } #AuxMenu img.separator { border-style:none;display:block; } #AuxMenu img.horizontal-separator { border-style:none;vertical-align:middle; } #AuxMenu ul { list-style:none;margin:0;padding:0;width:auto; } #AuxMenu ul.dynamic { z-index:1; } #AuxMenu a { text-decoration:none;white-space:nowrap;display:block; } #AuxMenu a.static { text-decoration:none;border-style:none;padding-left:0.15em;padding-right:0.15em; } #AuxMenu a.popout { background-image:url("/WebResource.axd?d=YAYach_zykzn7tRotFpEUpLbm8-AaEF0ex9x_GTRQp7fxYLqbSBT-ykmKxq6l97s05rGQ3KpCAtPii7g5ccpXmGPv1HPy_UocdN-ygwKcio1&t=638628063619783110");background-repeat:no-repeat;background-position:right center;padding-right:14px; } /* ]]> */ </style><meta name="description" content="Starting in Junos OS Release 16.1R3 one can request streaming telemetry data using the gRPC framework with vendor-neutral data models based on OpenConfig." /></head> <body class="bodyBackground blogviewer interior "> <div id="MPOuterMost" class="container full"> <form method="post" action="./blogviewer?blogkey=e37a2402-d6e2-4e6a-8884-01638414ee3e" onsubmit="javascript:return WebForm_OnSubmit();" id="MasterPageForm" class="form"> <div class="aspNetHidden"> <input type="hidden" name="ScriptManager1_TSM" id="ScriptManager1_TSM" value="" /> <input type="hidden" name="StyleSheetManager1_TSSM" id="StyleSheetManager1_TSSM" value="" /> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['MasterPageForm']; if (!theForm) { theForm = document.MasterPageForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="https://ajax.aspnetcdn.com/ajax/4.6/1/WebForms.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ window.WebForm_PostBackOptions||document.write('<script type="text/javascript" src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZDy7_GOIpjJ0Ev_gCdQYqqHk_ZWFLV5XISDcYendLTMgPoYek08VT5y3fOFST6xT6Q2&amp;t=638628063619783110"><\/script>');//]]> </script> <script type="text/javascript"> //<![CDATA[ $(document).ready(function () { hl_common_util_attach_dropdown_config('ManageDropdownMainCopy_ctl02_ucPermission_ManageDropDown1638682792398690871',false,''); });//]]> </script> <script src="https://ajax.aspnetcdn.com/ajax/4.6/1/MenuStandards.js" type="text/javascript"></script> <script src="https://ajax.aspnetcdn.com/ajax/4.6/1/MicrosoftAjax.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ (window.Sys && Sys._Application && Sys.Observer)||document.write('<script type="text/javascript" src="/ScriptResource.axd?d=uHIkleVeDJf4xS50Krz-yKqyI6ItVec4s3idbjHVhZG9J4GiEigPlJ1Pr7dbHMCyIOf7kxfX3Nb7yVtUXhwQ7AOu-iPRjdC_l5vxB_gc6Z3Dxd5tRPLJv-GNFNwaN0H-W3X3hfs6Qrai_oPPvnAUre8zbJUdf1a1YJ0rNRsMv-o1&t=2a9d95e3"><\/script>');//]]> </script> <script src="https://ajax.aspnetcdn.com/ajax/4.6/1/MicrosoftAjaxWebForms.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ (window.Sys && Sys.WebForms)||document.write('<script type="text/javascript" src="/ScriptResource.axd?d=Jw6tUGWnA15YEa3ai3FadCxOzjXo7DUqjVdZ-ppUm_hmRsjByokg8vJsbXd_vty5sSD7cLjWah6CFay_-VEpx11xzWP5I0beGdwJH7ICkEzqKBZp0aF_WH7BGPayHXieN2_FVY_LynI6wS_6mDtAk2iKQomHaPnn3KkQQDR1LTw1&t=2a9d95e3"><\/script>');function WebForm_OnSubmit() { null; return true; } //]]> </script> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="738F2F5A" /> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="CfDJ8GYwqx9YzLZGmPQ2hZZF70J4R3rgTLwtkY2nQAdgspzrTRsPEApMomt4wjvyVTIs6N1miyTq2/r3RKWkbQOBcLtt66MxMMA9Oj87EZXd6txQWBP5By1VAyZ1mX+PUgX1XoJXE/sf4BTZOrjvMVsZUaRBM/YVRTzfXYSqVULFGzPr8QBpKAyXCEE05Rahp84xejKr3M0iFC6BBVo3h2IIrvEGwY1/k3QwcbfOpc3NoPRx" /> </div> <input name="__HL-RequestVerificationToken" type="hidden" value="CfDJ8GYwqx9YzLZGmPQ2hZZF70Lle8v9I0yIzLKU7zPKssW4s-KClI7nrnRqormun73M-OnjYsBSf1dSswk4RH-zQGpUxb1Vq5zAwBYPkLVWubg0Pqxh5yILeBFlQljRyDZUqmtrBI_A8Y_Vg7scxX8zua81" /> <div id="GlobalMain"> <script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('ctl00$ScriptManager1', 'MasterPageForm', ['tctl00$MainCopy$ctl02$UpdatePanel3','MainCopy_ctl02_UpdatePanel3','tctl00$MainCopy$ctl02$ucPermission$BlogItemRating$CommentPanel','MainCopy_ctl02_ucPermission_BlogItemRating_CommentPanel'], ['ctl00$MainCopy$ctl02$ucPermission$BlogItemRating$lbLike','MainCopy_ctl02_ucPermission_BlogItemRating_lbLike'], [], 90, 'ctl00'); //]]> </script> </div> <!--mp_base--><div id="GlobalMessageContainer"> <div id="GlobalMessageContent" > <img ID="GlobalMsg_Img" alt="Message Image" src=""/>&nbsp;&nbsp; <span id="GlobalMsg_Text"></span><br /><br /> </div> </div> <div id="react-setup" style="height:0"> <script> var formTokenElement = document.getElementsByName('__HL-RequestVerificationToken')[0]; var formToken = formTokenElement? formTokenElement.value : ''; window.fetchOCApi = function(url, params) { return fetch(url, { method: 'POST', body: JSON.stringify(params), headers: { RequestVerificationFormToken: formToken, 'Content-Type': 'application/json' } }).then(function(response) { return response.json(); }).then(function(body) { return body.data }); } </script> <div id="__hl-activity-trace" traceId="776848d560f9a9fabe4605651dd2e94c" spanId="ed0830b6ab28a93a" tenantCode="JUNIPER" micrositeKey="408c9b7a-bee4-4bc8-8751-68fe11d01b6a" navigationKey="71ba7a06-35c3-4332-9b90-8497441cc1f1" navigationName="blogviewer" viewedByContactKey="00000000-0000-0000-0000-000000000000" pageOrigin="http://community.juniper.net" pagePath="/browse/blogs/blogviewer" referrerUrl="" userHostAddress="8.222.208.146 " userAgent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)" ></div> <div id="page-react-root"></div> <script id="hlReactRootLegacyRemote" defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRootLegacy/ReactRootLegacy~hlReactRootLegacyRemote.bundle.e3e14a157800b68e8ff0.hash.js"></script> <script>window.reactroot_webpackPublicPath = 'https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/'</script> <script defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/ReactRoot~runtime~main.bundle.e7f477778cba7f022a3d.hash.js"></script> <script defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/ReactRoot~react-_yarn_cache_react-npm-18_2_0-1eae08fee2-b9214a9bd7_zip_node_modules_react_index_js.bundle.012593f3ef708f027ac2.hash.js"></script><script defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/ReactRoot~vendor-_yarn___virtual___react-dom-virtual-05f150c4a1_0_cache_react-dom-npm-18_2_0-dd675bca1c-65c11b.bundle.8b02460446e4027ef67f.hash.js"></script><script defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/ReactRoot~vendor-_yarn___virtual___react-dom-virtual-05f150c4a1_0_cache_react-dom-npm-18_2_0-dd675bca1c-17e4a5.bundle.1dbb26f4013744b692d1.hash.js"></script><script defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/ReactRoot~vendor-_yarn_cache_lodash-npm-4_17_21-6382451519-c08619c038_zip_node_modules_lodash_lodash_js.bundle.8d689d0e26f432a3f17d.hash.js"></script><script defer src="https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/ReactRoot/ReactRoot~main.bundle.d9c6907ad1d4db1ca2e8.hash.js"></script> <script> window.hl_tinyMceIncludePaths = { cssIncludes: 'https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/Font-Awesome/6.4.2-pro/css/all.min.css|https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism.min.css|https://d2x5ku95bkycr3.cloudfront.net/HigherLogic/bootstrap/3.4.1/css/bootstrap.min.css|https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/Bundles/Desktop_bundle.min.d7804150d2a3d23b0f7bd53234959d21d94a14f1.hash.css|https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/jquery-ui.css|https://d132x6oi8ychic.cloudfront.net/higherlogic/microsite/generatecss/bc2fa343-ccd2-4775-884a-f1ad10dc9457/d113dfa4-a8ac-43ae-80a5-d2d034684850/638657980416470000/34|https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap|https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css|https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick-theme.css', tinymcejs: 'https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/JS/Common/hl_common_ui_tinymce.bc594acd1c86ca782a5f0446e0276d20202ffaf9.hash.js', hashmentionjs: 'https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/JS/Common/hl_common_ui_tinymce_hashmention.94b265db0d98038d20e17308f50c5d23682bf370.hash.js', mentionjs: 'https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/JS/Common/hl_common_ui_tinymce_mention.a35f893e40ce48b298979135724cd9e6ad18dde1.hash.js', hashtagjs: 'https://d3uf7shreuzboy.cloudfront.net/WebRoot/stable/Desktop/JS/Common/hl_common_ui_tinymce_hashtag.5579d26160cf6c00ace1fde0afcb2aacaf5baceb.hash.js' }; </script> <script> window.addEventListener('DOMContentLoaded', function (){ window.renderReactRoot( [], 'page-react-root', {"tenant":{"name":"Juniper Networks","logoPath":"","contactSummary":"<address></address>"},"communityKey":"00000000-0000-0000-0000-000000000000","micrositeKey":"408c9b7a-bee4-4bc8-8751-68fe11d01b6a","canUserEditPage":false,"isUserAuthenticated":false,"isUserSuperAdmin":false,"isUserCommunityAdmin":false,"isUserSiteAdmin":false,"isUserCommunityModerator":false,"currentUserContactKey":"00000000-0000-0000-0000-000000000000","isTopicCommunity":false,"isSelfModerationCommunity":false,"loginUrl":"/HigherLogic/Security/SAML/LocalSamlLoginService.aspx?ReturnUrl=","colorPickerDefaults":{"primaryColor":null,"textOnPrimary":null,"secondaryColor":null,"textOnSecondary":null,"linkColor":null,"linkHoverColor":null,"footerBackgroundColor":null,"footerTextColor":null}} ) }); </script> <svg aria-hidden="true" style="height: 0px;"> <defs> <linearGradient id="skeleton-svg-gradient" x1="0" x2="1" y1="0" y2="1"> <stop offset="0%" stop-color="rgba(239, 239, 239, 0.25)"> <animate attributeName="stop-color" values="rgba(239, 239, 239, 0.25); rgba(68, 72, 85, 0.2); rgba(239, 239, 239, 0.25);" dur="3s" repeatCount="indefinite"></animate> </stop> <stop offset="100%" stop-color="rgba(68, 72, 85, 0.2)"> <animate attributeName="stop-color" values="rgba(68, 72, 85, 0.2); rgba(239, 239, 239, 0.25); rgba(68, 72, 85, 0.2);" dur="3s" repeatCount="indefinite"></animate> </stop> </linearGradient> </defs> </svg> </div> <div id="MPOuterHeader" class="row siteFrame"> <div class="col-md-12"> <div id="HEADER" class="row"> <div class="col-md-12"> <div class="ContentItemHtml juniper-global-nav-wrapper"><div class="HtmlContent"></div><div class="HtmlFooter"></div></div><div class="ContentItemHtml"><div class="HtmlContent"><p style="text-align: center;"><span style="font-size: 16pt;"><a href="https://community.juniper.net/HigherLogic/Security/SAML/LocalSamlLoginService.aspx?binding=HttpPost&amp;ReturnUrl=https://community.juniper.net/home" target="_blank" rel="noopener noreferrer" data-auth="NotApplicable" data-safelink="true" data-linkindex="1">Log in</a> to ask questions, share your expertise, or stay connected to content you value. Don’t have a login? <a href="https://community.juniper.net/become-a-member" target="_blank" rel="noopener noreferrer" data-auth="NotApplicable" data-safelink="true" data-linkindex="2">Learn how to become a member</a>.  </span></p></div><div class="HtmlFooter"></div></div><div class="ContentUserControl"> <script charset="utf-8">$(function () { //handleActiveNavTitle(); handleHero(); handleTopTiles(); handleMostActiveMembers(); handleByLines(); handlePromoTile(); handleLinkTile(); handleHomeBlogs(); handleEvents(); handleImageSections(); handleCallOutBox(); handleQuoteSection(); handleColoredTitles(); handlePopularTopics(); handleContentTabs(); // Adding the See More Groups button to the Community List $('.most-active-groups').append($('.active-groups-button')); // Move Joined Community $('h1#PageTitleH1').append($('a[id*="communityJoinLeave"].btn-primary')); $('#CommunityTabsContainer').parent().addClass('community-nav-wrapper'); }); function handleHero() { $('.hero').wrapAll('<div class="hero-wrapper" />'); $('.hero-bg').hide(); var heroImgSrc = $('.hero-bg img').attr('src'); $('.hero-wrapper').css('background-image', 'url("' + heroImgSrc + '")'); $('.hero .SearchInputs input').attr('placeholder', 'Search the community'); } function handleTopTiles() { $('.top-tile').wrapAll('<div class="tile-wrapper"/>'); $('.top-tile').each(function () { var self = $(this), link = $(self).find('a'), href = $(link).attr('href'), anchorText = $(link).text(); link.replaceWith('<span>' + anchorText + '</span>'); if ($(link).attr('target') == '_blank') { $(self).wrapInner('<a href="' + href + '" target="_blank" rel="noopener" />'); } else { $(self).wrapInner('<a href="' + href + '" />'); } $(link).find('em').unwrap(); }); } function handleMostActiveMembers() { $('.HLEngagement ul li').each(function () { var pointsLabel = $(this).find('.points-label'); var name = $(this).find('.title-row .col-md-9'); $(name).append($(pointsLabel)); }); $('.home .HLEngagement').append($('.home .contributor-button')); } function handleByLines() { $('.latest-activity .SearchResults ul li, .tabs.hide-headings .HLDiscussions ul li, .featured-post .HLLandingControl ul li').each(function () { var self = $(this); var contentTags = $(self).find('div[id*="pnlTags"]'); var byline = $(self).find('.ByLine'); var communityName = $(self).find('h5'); var profileImg = $(self).find('div[id*="pnlProfPic"]'); var discussionPic = $(self).find('div[id*="DiscussionList_Picture"]'); $(profileImg).appendTo(self); $(byline).appendTo(self); $(communityName).appendTo(self); $(contentTags).appendTo(self); $(self).append('<div class="byline-wrap"/>'); var bylineWrap = $(self).find('.byline-wrap'); $(bylineWrap).append(profileImg); $(bylineWrap).append(discussionPic); $(bylineWrap).append(byline); $(bylineWrap).append(communityName); }); $('.interior div:not(.featured):not(.tech-landing) > div > .SearchResults.HLLandingControl ul li').each(function () { var self = $(this); var contentTags = $(self).find('div[id*="pnlTags"]'); var byline = $(self).find('.ByLine'); var communityName = $(self).find('h5'); $(byline).appendTo(self); $(communityName).appendTo(self); $(byline + ',' + communityName).wrapAll('<div class="byline-wrap"/>'); var byLine = $(this).find('.byline-wrap'); $(contentTags).appendTo(self); }); $('.latest-activity .HLDiscussions ul li').each(function () { var byline = $(this).find('.ByLine'); var contentRow = $(this).find('> .row.content-row'); var profileImg = $(this).find('div[id*="DiscussionList_Picture"]'); $(contentRow).prepend($(byline)); $(contentRow).prepend($(profileImg)); }); $('.community-home .HLDiscussions ul li').each(function () { var self = $(this); // var contentTags = $(self).find('div[id*="pnlTags"]'); var byline = $(self).find('.ByLine'); // var communityName = $(self).find('h5'); var picture = $(this).find('div[id*="DiscussionList_Picture"]'); $(byline).wrapAll('<div class="byline-wrap"/>'); var byLineWrap = $(this).find('.byline-wrap'); $(byLineWrap).prepend($(picture)); $(byLineWrap).appendTo(self); }); } function handlePromoTile() { $('.promo-tile').each(function () { var htmlContent = $(this).find('.HtmlContent'); var img = $(htmlContent).find('img'); $(img).hide(); var imgSrc = $(img).attr('src'); $(htmlContent).css('background-image', 'url("' + imgSrc + '")'); // link = $(this).find('a'), // href = $(link).attr('href'), // anchorText = $(link).text(); // link.replaceWith('<span>' + anchorText + '</span>'); // if ($(link).attr('target') == '_blank') { // $(htmlContent).wrapInner('<a href="' + href + '" target="_blank" rel="noopener" />'); // } else { // $(htmlContent).wrapInner('<a href="' + href + '" />'); // } // $(link).parent().unwrap(); }); } function handleLinkTile() { $('.link-tile').wrapAll('<div class="link-wrapper" />'); $('.link-tile').each(function () { var anchor = $(this).find('a'); var href = $(anchor).attr('href'); var anchorText = $(anchor).text(); $(anchor).replaceWith('<span>' + anchorText + '</span>'); $(this).wrapInner('<a href="' + href + '"></a>'); }); } function handleHomeBlogs() { $('.latest-blogs .HLLandingControl ul li').each(function () { var titleHref = $(this).find('h3 a').attr('href'); var titleText = $(this).find('h3 a').text(); $(this).find('h3 a').replaceWith('<span>' + titleText + '</span>'); $(this).wrap('<a href="' + titleHref + '"></a>'); var panelTags = $(this).find('div[id*="pnlTags"]'); $(this).prepend($(panelTags)); var readMore = $(this).find('a[id*="ShowMore"]'); var Byline = $(this).find('.ByLine'); $(Byline).contents().filter(function () { return this.nodeType === 3 }).wrap('<div class="blog-time" />'); var secondBlogTime = $(Byline).find('.blog-time:last-child'); var blogTime = $(secondBlogTime).text().trim(); var noCommaBlogTime = blogTime.slice(2, blogTime.length); $(secondBlogTime).text(noCommaBlogTime); $(this).append(Byline); $(this).append($(readMore)); var readMoreText = $(readMore).text(); $(readMore).replaceWith('<span id="ShowMore">' + readMoreText + '</span>'); // Grab href for each news item var self = $(this), href = $(self).parent().attr('href'); // handle image var imgContainer = '<div class="img-container loading" />'; $(self).prepend(imgContainer); // Ajax Call for each news item $.ajax({ url: href, dataType: "html", success: success }); function success(resp) { if ($(resp).find('.blogs-block').length) { var img = $(resp).find('.blogs-block .col-md-12 img:first-of-type'); console.log(img); } var src = $(img).attr("src"), url = "url('" + src + "')"; $(self) .find(".img-container") .css("background-image", url); setTimeout(function () { $(self) .find(".img-container") .removeClass("loading"); }, 2000); } }) } function handleEvents() { $('.home .HLEventList h2').append($('.home .HLEventList .add-event-button')); $('.upcoming-events .HLEventList ul li').each(function () { var eventType = $(this).find('h4'); $(this).prepend(eventType); var dateTimeTrimmed = $(this).find('.timeAgoFormat').text().trim(); var thirdCommaPosition = dateTimeTrimmed.lastIndexOf(','); var dateValue = dateTimeTrimmed.slice(0, thirdCommaPosition); var timeValue = dateTimeTrimmed.slice(thirdCommaPosition + 1, dateTimeTrimmed.length); $(this).find('.timeAgoFormat').html('<div class="event-date">' + dateValue + '</div>' + '<div class="event-time">' + timeValue + '</div>'); }); } function handleImageSections() { $('.image-left').each(function () { var htmlcontent = $(this).find('.HtmlContent'); var image = $(htmlcontent).find('img'); var imgSrc = $(image).attr('src'); $(image).hide(); $(htmlcontent).wrapInner('<div class="col-md-6"/>'); $(htmlcontent).prepend('<div style="background-image: url(' + imgSrc + ')" class="col-md-6" />'); }); $('.image-right').each(function () { var htmlcontent = $(this).find('.HtmlContent'); var image = $(htmlcontent).find('img'); var imgSrc = $(image).attr('src'); $(image).hide(); $(htmlcontent).wrapInner('<div class="col-md-6"/>'); $(htmlcontent).append('<div style="background-image: url(' + imgSrc + ')" class="col-md-6" />'); if ($(this).hasClass('video')) { var embedContainer = $(this).find('.embed-container'); var lastDiv = $(htmlcontent).find('> div:last-of-type'); $(lastDiv).append($(embedContainer)); $(lastDiv).css('background-image', 'none'); } }); } function handleCallOutBox() { $('.callout-box').each(function () { var anchorHref = $(this).find('em a').attr('href'); var anchorText = $(this).find('em a').text(); var anchor = $(this).find('em a'); $(anchor).replaceWith('<span>' + anchorText + '</span>'); $(this).wrapInner('<a href="' + anchorHref + '"/>'); }); } function handleQuoteSection() { $('.quote-section').each(function () { var image = $(this).find('img'); var imageSrc = $(image).attr('src'); var htmlContent = $(this).find('.HtmlContent'); $(htmlContent).wrapInner('<div class="text-content"/>'); $(htmlContent).prepend('<div class="quote-author" style="background-image: url(' + imageSrc + ')"/>'); var h3 = $(this).find('h3'); $(h3).wrapAll('<div class="byline"/>'); }); } function handleActiveNavTitle() { var level1NavHref = $('#MPButtonBar ul.navbar-nav > li:first-of-type > a').attr('href'); var level1NavText = $('#MPButtonBar ul.navbar-nav > li:not(.dropdown):first-of-type > a').text(); $('<a href="' + level1NavHref + '" class="level-1-title">' + level1NavText + '</a>').insertBefore('#MPButtonBar .navbar > .navbar-header'); $('#MPButtonBar ul.navbar-nav > li:first-of-type > a').hide(); } function handleColoredTitles() { var classList = document.getElementById('MainCopy_ContentWrapper') ? document.getElementById('MainCopy_ContentWrapper').className.split(/\s+/) : []; for (var i = 0; i < classList.length; i++) { if (classList[i] === 'dark-page-title') { $('h1#PageTitleH1').addClass(classList[i]); } else if (classList[i] === 'light-page-title') { $('h1#PageTitleH1').addClass(classList[i]); } } } function handlePopularTopics() { $('.popular-topics').each(function () { var popularTopicsButtons = $(this).find('em'); var popularTopicsHtml = $(this).find('.HtmlContent'); $(popularTopicsHtml).append('<div class="button-container"></div>'); var buttonContainer = $(this).find('.button-container'); $(buttonContainer).append($(popularTopicsButtons)); var popularTopicsHeader = $(this).find('h2'); var popularTopicsParagraph = $(this).find('p'); $(popularTopicsHeader).wrap('<div class="text-container"></div>'); var textContainer = $(this).find('.text-container'); $(textContainer).append($(popularTopicsParagraph)); }); } function handleContentTabs() { // Add class tabbed-content to the closest section to content items with the class tabs $('.tabs').closest('div[class*="section"]').addClass('tabbed-content'); // Initialize and set counter that will be used to set unique id's and hrefs contecting tab nav items to tab content items var counter = 1; // Iterate over each HL section that has tabs to prepend bootstrap nav-tab markup $('.tabbed-content').each(function () { // Grab direct parent of tabs content items and add bootstrap tab markup to parent div var firstDiv = $('.tabs').parent(); if (!$(firstDiv).hasClass('has-tab-nav')) { $(firstDiv).prepend('<div class="row-groups"><div class="container"><div class="row"><div class="col-md-12"><ul class="nav nav-tabs" role="tablist"></ul></div></div><div class="row"><div class="col-md-12"><div class="tab-content"></div></div></div></div></div>').addClass('has-tab-nav');; } var tabContent = $(this).find('.tab-content'); var tabs = $(this).find('.tabs'); // Iterate over each content item with the class tabs $(tabs).each(function () { // Wrap tabs content item with tab markup and generated tab + counter id $(this).wrap('<div id="tab-' + counter + '" class="tab-pane" aria-labelledby="tab-' + counter + '" role="tabpanel" ></div>'); // Add the tab content item with tab markup to tab-content div found in tabbed-content div $(tabContent).append($('#tab-' + counter)); // travel up the dom from tabs content to closest tabbed-content div and then find the nav-tabs markup within tabbed content var navTabs = $(this).closest('.tabbed-content').find('.nav-tabs'); // Add markup for nav tabs for each tabs content item with href matching the tab + counter id to allow tabs to work with tabs content $(navTabs).append('<li role="presentation"><a href="#tab-' + counter + '" aria-controls="all" role="tab" data-toggle="tab">FIRST TAB</a></li>'); // Get tab title without additional add button text var tabTitle = $(this).find('.heading h2:first-of-type:not(a[id*="Add"]), > h2:not(a[id*="Add"]), h2[id*="TitleText"]').clone().children().remove().end().text(); // Replace FIRST TAB placeholder text with tab content item title $(this).find($('.nav-tabs a[href="#tab-' + counter + '"]').text(tabTitle)); // Increase counter by 1 for next iteration of tabs content item id and href counter++; }); }); // Set first child of any tabbed content to active state to display on page load $('.tabbed-content .nav-tabs > li:first-of-type').addClass('active'); $('.tabbed-content .tab-content > div.tab-pane:first-of-type').addClass('active'); }</script> </div><div class="ContentUserControl"> <script charset="utf-8">$(function() { $(".accordion-heading").each(function() { $(this).next(".accordion-text").andSelf().wrapAll("<div class='accordion-wrap' />"); }); $('.accordion-heading button').on('click', function() { var items = []; $('.accordion-wrap').each(function (i, item) { items.push(item); }); $parent_box = $(this).closest('.accordion-wrap'); $parent_box.siblings().find('.accordion-text').slideUp(); $parent_box.find('.accordion-text').slideToggle(600, 'swing'); $parent_box.toggleClass('open'); var selected = $(items).index($parent_box); for (var j = 0; j < items.length; j++) { if (j !== selected) { $(items[j]).removeClass('open'); } } }); });</script> </div><div class="ContentUserControl"> <script charset="utf-8">if(location.hostname === 'juniper.connectedcommunity.org') location = 'https://community.juniper.net' + location.pathname; if(location.hostname === 'innovatorscircle.juniper.net') location = 'https://community.juniper.net' + location.pathname; if(location.hostname === 'forums.juniper.net') location = 'https://community.juniper.net' + location.pathname;</script> </div><div class="ContentUserControl"> <script charset="utf-8">$('body').css('visibility', 'hidden'); $(document).ready(function() { $('body').css('visibility', 'visible').hide().fadeIn(900); });</script> </div><div class="ContentUserControl"> <script charset="utf-8" src="https://assets.adobedtm.com/5b254441120f/a1c481c1b264/launch-ebc3c7fee771.min.js"></script> </div> <div id="MPimage" class="MPimage"> <div id="mainskiplinkholder" class="skiplinkholder"><a id="skiplink" href="#MPContentArea">Skip to main content (Press Enter).</a></div> <div id="MPheader" class="MPheader"> <div class="row"> <div class="col-md-12"> <div class="pull-right"> <div class="inline"> <div class='HLWelcome HLWelcomeHeader'> <script type="text/javascript"> $(document).ready(function () { $('.Picture_Profile').tipTip({ delay: 200 }); }); function toggleHelp() { if ($("ul#CompleteBarHelpContainer").is(":visible")) { $("ul#CompleteBarHelpContainer").hide(); } else { $("ul#CompleteBarHelpContainer").show(); } } // Added as onClick for logoutLink on back end if opted in // On logout, removes the CREST API cookie that was added on login, whose value is a token used to authenticate to the API function removeApiToken(tenantKey, token) { hl_webapi_remove_cookie(tenantKey, token, tenantKey, "HLApiPassThrough"); window.location = ""; return false; } $(document).on('click', "span.CompleteBarClose", function (e) { e.stopPropagation(); toggleHelp(); $(".btn-group").find('button#BtnShowProfile').dropdown('toggle'); }); </script> <div class="EndDiv"> </div> <div id="Welcome_NotLoggedIn" class="Login"> <a id="Welcome_LoginLink" class="btn btn-primary" qa-id="login-link" href="/HigherLogic/Security/SAML/LocalSamlLoginService.aspx?ReturnUrl=https%3a%2f%2fcommunity.juniper.net%2fbrowse%2fblogs%2fblogviewer%3fblogkey%3de37a2402-d6e2-4e6a-8884-01638414ee3e">Sign in</a> </div> </div> </div> </div> <div class="pull-right"> <div id="auxskiplinkholder" class="skiplinkholder"> <a id="auxskiplink" href="#Logo">Skip auxiliary navigation (Press Enter).</a> </div> <div id="MPAuxNav" class="inline vertical-align-middle"> <div CssSelectorClass="MPAuxNav" id="AuxMenu"> <ul class="level1"> <li><a title="How to get in contact with us" class="level1 MPAuxNav" href="/contactus">Contact Us</a></li><li><a title="Read the code of conduct for posting to the lists" class="level1 MPAuxNav" href="/termsandconditions">Terms and Conditions</a></li> </ul> </div> </div> </div> </div> </div> </div> </div> <div style="clear: both"></div> <div class="ContentItemHtml"><div class="HtmlContent"><script type="application/ld+json"> { "@context": "http://schema.org", "@id": "https://community.juniper.net/#website", "@type": "WebSite", "url": "https://community.juniper.net", "name": "Juniper Networks", "alternateName": "Juniper", "publisher": {"@type": "Corporation", "name": "Juniper Networks"}}</script> <script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "Organization", "name" : "Juniper Networks", "legalName" : "Juniper Networks, Inc.", "alternateName" : ["Juniper", "瞻博网络", "ジュニパーネットワークス", "주니퍼 네트웍스"], "url" : "https://community.juniper.net", "sameAs" : ["https://en.wikipedia.org/wiki/Juniper_Networks", "https://www.facebook.com/JuniperNetworks/", "https://twitter.com/JuniperNetworks/", "https://www.linkedin.com/company/juniper-networks", "https://www.youtube.com/junipernetworks", "https://www.instagram.com/junipernetworks/"]}</script></div><div class="HtmlFooter"></div></div> </div> </div> <div id="NAV" class="row traditional-nav"> <div class="col-md-12"> <div id="navskiplinkholder" class="skiplinkholder"><a id="navskiplink" href="#MPContentArea">Skip main navigation (Press Enter).</a></div> <div id="MPButtonBar"> <nav class="navbar navbar-default"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse, .icon-bar-start"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar-start"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse navbar-ex1-collapse"> <div class="row"> <div class="col-md-12 "> <div id="searchColumn" class="pull-right"> <div id="MPSearchBlock" role="search"> <script type="text/javascript"> System.import('Common/SearchBox.js').then(function () { $('#SearchControl_SearchButton').click(function () { $('#SearchControl_hiddenSearchButton').click(); }); $('#SearchControl_SearchOptions').click(function (e) { e.stopPropagation(); }); if ('False' == 'True') { $('#SearchControl_SearchTerm').click(function (e) { $('#SearchControl_SearchBoxToggle').addClass('open'); e.stopPropagation(); }); $('#SearchControl_SearchTerm').focus(function (e) { $('#SearchControl_SearchBoxToggle').addClass('open'); e.stopPropagation(); }); $('#SearchControl_EndDate').hide(); $('#SearchControl_StartDate').hide(); $('#SearchControl_SearchTerm').focus(function () { $('#SearchControl_SearchOptions').show(); }); $('#SearchControl_DateRangeDDL').change(function () { if ($('#SearchControl_DateRangeDDL').find(":selected").text() == 'on this day') { $('#SearchControl_StartDate').show(); $('#SearchControl_EndDate').hide(); $('#SearchControl_EndDate').val(""); } else if ($('#SearchControl_DateRangeDDL').find(":selected").text() == 'All') { $('#SearchControl_EndDate').hide(); $('#SearchControl_StartDate').hide(); } else { $('#SearchControl_StartDate').show(); $('#SearchControl_EndDate').show(); } }); } $('#SearchControl_SearchInputs') .hl_ui_common_searchBox({ controlId: 'SearchControl_SearchInputs', inputId: 'SearchControl_SearchTerm', buttonId: 'SearchControl_hiddenSearchButton' }); }); </script> <button id="SearchToggleIcon" type="button" class="btn btn-default" style="display: none;" role="button" aria-label="searchToggle"> <span class="glyphicon glyphicon-search" style="vertical-align: middle"></span> </button> <div id="SearchControl_newSearchBox" class=""> <div id="SearchControl_SearchInputs" class="SearchInputs"> <div id="SearchControl_WholeSearch" onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;SearchControl_hiddenSearchButton&#39;)"> <div class="input-group" style="vertical-align: middle"> <input name="ctl00$SearchControl$SearchTerm" type="text" id="SearchControl_SearchTerm" class="form-control" autocomplete="off" qa-id="search-term" aria-label="search box" placeholder="search" Title="search" style="font-weight: normal;" /> <div id="SearchControl_SearchBoxToggle" class="input-group-btn search-box-toggle"> <button id="SearchControl_OptionsButton" type="button" style="display: none;" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-label="search options"> <span class="caret"></span> <span class="sr-only">Search Options</span> </button> <button id="SearchControl_SearchButton" type="button" class="btn btn-default " role="button" aria-label="search"> <span class="glyphicon glyphicon-search" style="vertical-align: middle"></span> </button> <ul class="dropdown-menu pull-right" role="menu"> <li> </li> </ul> </div> <input type="submit" name="ctl00$SearchControl$hiddenSearchButton" value="" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$SearchControl$hiddenSearchButton&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="SearchControl_hiddenSearchButton" style="display: none;" /> </div> </div> </div> </div> </div> </div> <ul class="nav navbar-nav"> <li ><a href='/home' ><span>Elevate</span></a></li><li class='dropdown'><a href='/communities' class='dropdown-toggle' data-toggle='dropdown'><span>Communities</span> <strong class='caret'></strong></a><ul class='dropdown-menu'><li ><a href='/communities/allcommunities' >All Communities</a></li><li ><a href='/communities/answers' >Answers</a></li><li ><a href='/communities/innovation-circles' >Innovation Circles</a></li><li ><a href='/communities/training-and-development' >Training and Development</a></li></ul></li><li class='dropdown'><a href='/my-elevate' class='dropdown-toggle' data-toggle='dropdown'><span>My Elevate</span> <strong class='caret'></strong></a><ul class='dropdown-menu'><li ><a href='/my-elevate/my-profile' >My Profile</a></li><li ><a href='/my-elevate/my-communities' >My Communities</a></li><li ><a href='/my-elevate/my-circles' >My Circles</a></li><li ><a href='/my-elevate/my-contacts' >My Contacts</a></li><li ><a href='/my-elevate/my-contributions' >My Contributions</a></li><li ><a href='/my-elevate/my-inbox' >My Inbox</a></li></ul></li><li class='dropdown'><a href='/browse' class='dropdown-toggle' data-toggle='dropdown'><span>Browse</span> <strong class='caret'></strong></a><ul class='dropdown-menu'><li ><a href='/browse/allrecentposts' >Discussion Posts</a></li><li ><a href='/browse/popular-discussions' >Popular Discussions</a></li><li ><a href='/browse/events' target='_blank'>Events</a></li><li ><a href='/browse/engnet' >EngNet</a></li><li ><a href='/browse/tech-posts' >TechPost</a></li><li ><a href='/browse/ambassadors' >Ambassadors</a></li><li ><a href='/browse/mistfits' >MistFits</a></li></ul></li><li class='dropdown'><a href='/participate' class='dropdown-toggle' data-toggle='dropdown'><span>Participate</span> <strong class='caret'></strong></a><ul class='dropdown-menu'><li ><a href='/participate/faq' >Help/FAQs</a></li><li ><a href='/participate/start-discussion' >Start a Discussion</a></li><li ><a href='/participate/share-expertise' >Share your Expertise</a></li></ul></li><li ><a href='/become-a-member' ><span>Become A Member</span></a></li> </ul> </div> </div> </div> </nav> </div> <div class="MenuBarUnderline"> </div> </div> </div> </div> </div> <div id="MPOuter" class="row siteFrame "> <div id="ContentColumn" class="col-md-12"> <!--content--> <div id="BreadCrumb" class="BreadCrumb"> <ol class='breadcrumb'><li><span title='Blog Viewer'>Blog Viewer</span></li></ol> </div> <div id="MPContentArea" class="MPContentArea no-pageTitle-padding" role="main"> <h1 id="PageTitleH1" qa-attribute="PageTitleH1" style="display: none;" aria-hidden="true"> Blogs </h1> <input type="hidden" name="ctl00$DefaultMasterHdnCommunityKey" id="DefaultMasterHdnCommunityKey" value="00000000-0000-0000-0000-000000000000" /> <div id="FlashMessageContainer"> </div> <div id="MainCopy_ContentWrapper"> <div class="row row-wide clearfix "><div class="col-md-12 section1"><div class="ContentUserControl"> <div class='blogs-block '> <div id="MainCopy_ctl02_UpdatePanel3"> <div id="TitleContainer" class="row"> <div class="col-md-12"> <div class="form-inline"> <div class="form-group inline-block"> <h2 id="MainCopy_ctl02_ucPermission_TitlePanel" class="blogTitle"> OpenConfig and gRPC Junos Telemetry Interface </h2> </div> </div> </div> </div> <div class="row margin-bottom-large"> <div class="col-md-8"> <div class="form-inline"> <div class="form-group"> <h4> <div id="MainCopy_ctl02_ucPermission_ByLinePanel"> <span class="profile-avatar"> <a id="MainCopy_ctl02_ucPermission_ProfileAvatar_lnkDisplay" biobubblekey="fc693107-3843-49b5-97ba-2b4d22866642" href="https://community.juniper.net/people/marcel-wiget1"><img id="MainCopy_ctl02_ucPermission_ProfileAvatar_imgDisplay" title="mwiget" biobubblekey="fc693107-3843-49b5-97ba-2b4d22866642" src="https://d132x6oi8ychic.cloudfront.net/higherlogic/directory/imagedisplay/bc2fa343-ccd2-4775-884a-f1ad10dc9457/b70a62d5-4394-4e87-b3d2-ee4daf7dc461/113/150/637384464944200000" alt="" /></a> </span> <span class="TitleHeading">By</span> <a id="MainCopy_ctl02_ucPermission_UserName_lnkProfile" biobubblekey="fc693107-3843-49b5-97ba-2b4d22866642" href="https://community.juniper.net/people/marcel-wiget1" style="font-weight:normal;">mwiget</a> <span id="MainCopy_ctl02_ucPermission_lblBlogStatus" class="TitleHeading">posted</span> 11-29-2017 15:40 </div> </h4> </div> &nbsp;&nbsp; <div class="form-group"> </div> <div class="form-group"> </div> </div> </div> <div class="col-md-2 margin-top-small clearfix"> <span id="MainCopy_ctl02_ucPermission_IconFollow" class="pull-right"> </span> </div> <div class="col-md-2 clearfix"> <div id="MainCopy_ctl02_ucPermission_pnlRating" class="pull-right"> <div id="MainCopy_ctl02_ucPermission_BlogItemRating_CommentPanel" class="CommentPanel ItemRatingCommentPanel"> <script type="text/javascript"> function showLikesModal(itemkey) { var req = {}; req.ItemKey = itemkey; hl_common_ui_blockUI(); $.ajax({ contentType: 'application/json; charset=utf-8', type: 'POST', data: JSON.stringify(req), dataType: 'html', url: '/HigherLogic/UI/MVC/common/itemrating/GetRecommendedByModalPartial', success: function (data) { var $nom = $('#recommended-by-modal'); if ($nom.length > 0) { $nom.remove(); } $('body').append(data); $('#recommended-by-modal').modal('show'); hl_common_ui_unBlockUI(); }, }); } function showDemographicLikesModal(demographicKey, contactKey) { var req = {}; req.DemographicKey = demographicKey; req.ContactKey = contactKey; hl_common_ui_blockUI(); $.ajax({ contentType: 'application/json; charset=utf-8', type: 'POST', data: JSON.stringify(req), dataType: 'html', url: '/HigherLogic/UI/MVC/common/itemrating/GetDemographicRecommendedByModalPartial', success: function (data) { var $nom = $('#recommended-by-modal'); if ($nom.length > 0) { $nom.remove(); } $('body').append(data); $('#recommended-by-modal').modal('show'); hl_common_ui_unBlockUI(); }, }); } </script> <div id="MainCopy_ctl02_ucPermission_BlogItemRating_likeRatingContainer" class="" style="margin-top:5px;"> <a id="MainCopy_ctl02_ucPermission_BlogItemRating_hypTotalLikes" title="Nbr of recommenders" class="btn btn-sm btn-default-override btn-recommend-no" href="javascript:showLikesModal(&#39;e37a2402-d6e2-4e6a-8884-01638414ee3e&#39;);">1</a> <a id="MainCopy_ctl02_ucPermission_BlogItemRating_lbLike" title="Recommend this item." class="btn btn-sm btn-default-override" role="button" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainCopy$ctl02$ucPermission$BlogItemRating$lbLike&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">Recommend</a> </div> <!-- Recommend button --> <!-- End of Recommend Button --> <!-- tooltip element --> </div> </div> </div> </div> <div class="row margin-top-large"> <div class="col-md-12"> <div class="lia-message-template-content-zone"><p>Starting in Junos OS Release 16.1R3 one can request streaming telemetry data using the gRPC framework with vendor-neutral data models based on OpenConfig.&nbsp;Great, but what configuration is required and is there a simple client available to test and troubleshoot it? I recently faced this question myself and found some great resources, which I documented in this post. For an in-depth discusssion about the various streaming telemetry option from Juniper devices, read thru the 3 parts on<span>&nbsp;</span><a href="https://techmocha.blog/" data-di-id="di-id-2d59a6f-9ab4e61" rel="nofollow noopener noreferrer">Tech Mocha</a>, starting with<span>&nbsp;</span><a href="https://techmocha.blog/2017/06/26/using-opennti-as-a-collector-for-streaming-telemetry-from-juniper-devices-part-1/" data-di-id="di-id-383c2a08-1893c01d" rel="nofollow noopener noreferrer">USING OPENNTI AS A COLLECTOR FOR STREAMING TELEMETRY FROM JUNIPER DEVICES: PART 1</a>.</p> <h3>Ingredients</h3> <ul> <li>Juniper vMX running Junos 17.3R1</li> <li><a href="https://www.juniper.net/support/downloads/?p=openconfig#sw" data-di-id="di-id-4ad38163-3344af0" rel="nofollow noopener noreferrer">Junos Openconfig</a><span>&nbsp;</span>and<span>&nbsp;</span><a href="https://www.juniper.net/support/downloads/?p=mx960#sw" data-di-id="di-id-f7da5686-44084d38" rel="nofollow noopener noreferrer">Network Agent Software</a><span>&nbsp;</span>Packages</li> <li><a href="https://github.com/nileshsimaria/jtimon" data-di-id="di-id-10b09d7d-67733386" rel="nofollow noopener noreferrer">JTI Junos Telemetry Interface client</a><span>&nbsp;</span>written in Go</li> <li>Junos configuration for gRPC</li> </ul> <h3>Juniper vMX</h3> <p>You need a Junos network device to test against. I’m using the latest Junos vMX running 17.3R1 on KVM. Any MX, PTX or QFX with the same version should work equally well.</p> <p><br>My lab vMX device uses the fxp0 IP address 172.17.0.4, which will be used to connect the JTI client to.<br>Before we can use any telemetry client, we must install two software packages on top of Junos:</p> <p>&nbsp;</p> <ul> <li><a href="https://www.juniper.net/support/downloads/?p=openconfig#sw" data-di-id="di-id-4ad38163-3344af0" rel="nofollow noopener noreferrer">Junos Openconfig</a><span>&nbsp;</span>specifies an RPC model to enable the Junos Telemetry Interface plus configuration models based on<span>&nbsp;</span><a href="http://openconfig.net/" data-di-id="di-id-68dbc09-e5b8471b" rel="nofollow noopener noreferrer">OpenConfig</a></li> <li><a href="https://www.juniper.net/support/downloads/?p=mx960#sw" data-di-id="di-id-f7da5686-44084d38" rel="nofollow noopener noreferrer">Network Agent Software</a><span>&nbsp;</span>provides a framework to support OpenConfig and gRPC for the Junos Telemetry Interface. It functions as a gRPC server that terminates the OpenConfig remote procedure call (RPC) interface and streams the telemetry data according to the OpenConfig specification.</li> </ul> <p>The latest versions downloaded are:</p> <pre><code>junos-openconfig-x86-32-0.0.0.8.tgz network-agent-x86-32-17.3R1.10-C1.tgz </code></pre> <p>Install both packages on Junos with the following commands:</p> <pre><code>request system software add junos-openconfig-x86-32-0.0.0.8.tgz no-validate request system software add network-agent-x86-32-17.3R1.10-C1.tgz no-validate </code></pre> <p>The CLI will ask for permition to relaunch its Daemon, which shall be granted. There is no need to restart Junos.</p> <h3>Junos Configuration</h3> <p>We need to enable gRPC and allow clients to connect from any source via</p> <pre><code>set system services extension-service request-response grpc clear-text port 50051 set system services extension-service request-response grpc skip-authentication </code></pre> <p>This opens up TCP port 50051 on the vMX and accepts gRPC requests in clear-text. Server-based SSL authentication is supported, but not used in this exercise. Earlier version of this blog post had notifications enabled, which is unrelated to gRPC and hence not needed.</p> <h3>JTI client</h3> <p>Install language Go and required libraries, then download and compile the client from github:</p> <pre><code>sudo apt install golang-go go get github.com/golang/protobuf/proto go get github.com/gorilla/mux go get github.com/influxdata/influxdb/client/v2 go get github.com/prometheus/client_golang/prometheus/promhttp go get github.com/spf13/pflag go get golang.org/x/net/context go get google.golang.org/grpc go get github.com/nileshsimaria/jtimon/telemetry go get github.com/nileshsimaria/jtimon/authentication </code></pre> <p>Clone and compile the client:</p> <pre><code>git clone https://github.com/nileshsimaria/jtimon.git cd jtimon go build </code></pre> <p>The build process takes no time at all. Display the tools help desk with:</p> <pre><code>$ ./jtimon -h Usage of ./jtimon: --compression string Enable HTTP/2 compression (gzip, deflate) --config string Config file name --csv-stats Capture size of each telemetry packet --drop-check Check for packet drops --gtrace Collect GRPC traces --latency-check Check for latency --log string Log file name --max-kv uint Max kv --max-run int Max run time in seconds --prefix-check Report missing __prefix__ in telemetry packet --print Print Telemetry data --prometheus Stats for prometheus monitoring system --sleep int Sleep after each read (ms) --stats int Print collected stats periodically --time-diff Time Diff for sensor analysis using InfluxDB pflag: help requested </code></pre> <h3>Action!</h3> <p>All the pieces are now in place and ready to have the JTI client connect to Junos and collect data.</p> <p>Copy the sample config file sample-config/1.json to a filename of your choice and adjust the username/password and sensors to match your device. My example config looks like this:</p> <pre><code>$ cat wdm.json { "host": "172.17.0.4", "port": 50051, "user": "mwiget", "password": "hb9rwm", "cid": "my-client-id", "grpc" : { "ws" : 524288 }, "paths": [{ "path": "/interfaces", "freq": 2000 }, { "path": "/junos/system/linecard/cpu/memory/", "freq": 1000 }, { "path": "/bgp", "freq": 10000 }, { "path": "/components", "freq": 10000 }] } </code></pre> <p>Launch the client with the config file argument and –print:</p> <pre><code>$ ./jtimon --config wdm.json --stats 10 --drop-check --print 2017/11/28 09:46:44 LoginCheck failed </code></pre> <p>Well, if you get the LoginCheck failed message as I did initially, you got the username or password wrong, but got proof of a working gRPC connection between the client and your device. Once I enabled the lab account on Junos, the client succeeds and prints out all requested telemetry data:</p> <pre><code>$ ./jtimon --config wdm.json --print gRPC headers from Junos: init-response: [response { subscription_id: 1 } path_list { path: "/interfaces/" sample_frequency: 2000 } path_list { path: "/junos/system/linecard/cpu/memory/" sample_frequency: 1000 } path_list { path: "/bgp/" sample_frequency: 10000 } path_list { path: "/components/" sample_frequency: 10000 } ] grpc-accept-encoding: [identity,deflate,gzip] 2017/11/28 09:50:43 system_id: wdm 2017/11/28 09:50:43 component_id: 0 2017/11/28 09:50:43 sub_component_id: 0 2017/11/28 09:50:43 path: sensor_1000_1_1:/junos/system/linecard/interface/:/junos/system/linecard/interface/:PFE 2017/11/28 09:50:43 sequence_number: 1 2017/11/28 09:50:43 timestamp: 1511859043721 2017/11/28 09:50:43 sync_response: %!d(bool=false) 2017/11/28 09:50:43 key: __timestamp__ 2017/11/28 09:50:43 uint_value: 1511859043960 2017/11/28 09:50:43 key: __prefix__ 2017/11/28 09:50:43 str_value: /interfaces/interface[name='xe-0/0/0']/ 2017/11/28 09:50:43 key: init_time 2017/11/28 09:50:43 uint_value: 1511854410 2017/11/28 09:50:43 key: state/parent_ae_name 2017/11/28 09:50:43 str_value: 2017/11/28 09:50:43 key: state/high-speed 2017/11/28 09:50:43 int_value: 10000 2017/11/28 09:50:43 key: state/oper-status 2017/11/28 09:50:43 str_value: UP 2017/11/28 09:50:43 key: state/counters/in-pkts 2017/11/28 09:50:43 uint_value: 163 2017/11/28 09:50:43 key: state/counters/in-octets 2017/11/28 09:50:43 uint_value: 48226 2017/11/28 09:50:43 key: state/counters/in-unicast-pkts 2017/11/28 09:50:43 uint_value: 163 2017/11/28 09:50:43 key: state/counters/out-pkts 2017/11/28 09:50:43 uint_value: 166 2017/11/28 09:50:43 key: state/counters/out-octets 2017/11/28 09:50:43 uint_value: 49800 2017/11/28 09:50:43 key: state/counters/carrier-transitions 2017/11/28 09:50:43 uint_value: 1 2017/11/28 09:50:43 key: __prefix__ 2017/11/28 09:50:43 str_value: /interfaces/interface[name='xe-0/0/1']/ 2017/11/28 09:50:43 key: init_time 2017/11/28 09:50:43 uint_value: 1511854410 2017/11/28 09:50:43 key: state/parent_ae_name ... </code></pre> <p>Pretty cool! The shown output also answers a question I had and never dared to ask: Do I need an actual proto file to understand the content of the streamed data? Turns out the answer is ‘no’ and here is why: The output shows each value with a timestamp plus key and value pair. The key is text and self explenatory: e.g. ‘/interfaces/interface[name=’xe–0/0/1’]/’, which clearly describes the source of the data and ‘state/counters/out-octets’ its nature.</p> <p>Similar, the CPU sensors reports, amongst other data:</p> <pre><code>2017/11/28 09:50:48 key: /components/component[name='FPC0:CPU0']/properties/property[name='mem-util-kernel-inline-ka-bytes-allocated']/value 2017/11/28 09:50:48 uint_value: 56 </code></pre> <p>Again, no additional explanation needed !</p> <p>The JTI tool has a lot more to offer, e.g. to report how much data is received every 10 second plus a summary once the client is terminated (using Ctrl-C), use:</p> <pre><code>$ ./jtimon --config wdm.json --stats 10 --drop-check gRPC headers from Junos: init-response: [response { subscription_id: 1 } path_list { path: "/interfaces/" sample_frequency: 2000 } path_list { path: "/junos/system/linecard/cpu/memory/" sample_frequency: 1000 } path_list { path: "/bgp/" sample_frequency: 10000 } path_list { path: "/components/" sample_frequency: 10000 } ] grpc-accept-encoding: [identity,deflate,gzip] +------------------------------+--------------------+--------------------+--------------------+--------------------+ | Timestamp | KV | Packets | Bytes | Bytes(wire) | +------------------------------+--------------------+--------------------+--------------------+--------------------+ | Tue Nov 28 09:56:40 CET 2017 | 4525 | 20 | 189338 | 189338 | | Tue Nov 28 09:56:50 CET 2017 | 11818 | 49 | 481065 | 481065 | | Tue Nov 28 09:57:00 CET 2017 | 19285 | 80 | 793379 | 793379 | | Tue Nov 28 09:57:10 CET 2017 | 26816 | 112 | 1108421 | 1108421 | ^C Drops Distribution +----+-----+-------+----------+-------------------------------------------------------------------------------------------------------------------------+ | CID |SCID| Drops | Received | Sensor Path | +----+-----+-------+----------+-------------------------------------------------------------------------------------------------------------------------+ |65535| 0| 0| 16 | sensor_1003:/components/:/components/:chassisd | |65535| 0| 0| 36 | sensor_1000_4_1:/interfaces/:/interfaces/:mib2d | |65535| 0| 0| 9 | sensor_1000_6_1:/interfaces/:/interfaces/:xmlproxyd | | 0| 0| 0| 17 | sensor_1001:/junos/system/linecard/cpu/memory/:/junos/system/linecard/cpu/memory/:PFE | | 0| 0| 0| 17 | sensor_1000_1_1:/junos/system/linecard/interface/:/junos/system/linecard/interface/:PFE | | 0| 0| 0| 17 | sensor_1000_1_2:/junos/system/linecard/interface/logical/usage/:/junos/system/linecard/interface/logical/usage/:PFE | +----+-----+-------+----------+-------------------------------------------------------------------------------------------------------------------------+ Collector Stats (Run time : 40.257567985s) 112 : in-packets 26816 : data points (KV pairs) 415 : in-header wirelength (bytes) 1108421 : in-payload length (bytes) 1108421 : in-payload wirelength (bytes) 27710 : throughput (bytes per seconds) 0 : total packet drops </code></pre> <p>While the client is running, you can check the sensors on Junos:</p> <pre><code>lab@wdm&gt; show agent sensors Sensor Information : Name : __default_fabric_sensor__ Resource : /junos/system/linecard/fabric/ Version : 1.0 Sensor-id : 129585707 Subscription-ID : 562952230490667 Parent-Sensor-Name : Not applicable Component(s) : PFE Server Information : Name : __default__snmp_server__ Scope-id : 0 Remote-Address : 0.0.0.0 Remote-port : 0 Transport-protocol : UDP Profile Information : Name : __default_snmp_export_profile__ Reporting-interval : 30 Payload-size : 5000 Address : 0.0.0.0 Port : 0 Timestamp : 0 Format : GPB DSCP : 0 Forwarding-class : 0 Loss-priority : low Sensor Information : Name : sensor_1000 Resource : /interfaces/ Version : 1.0 Sensor-id : 2657203 Subscription-ID : 1000 Parent-Sensor-Name : Not applicable Component(s) : PFE,PFE,mib2d,xmlproxyd Profile Information : Name : export_1000 Reporting-interval : 2 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1000_1_1 Resource : /junos/system/linecard/interface/ Version : 1.1 Sensor-id : 186469721 Subscription-ID : 1000 Parent-Sensor-Name : sensor_1000 Component(s) : PFE Profile Information : Name : export_1000 Reporting-interval : 2 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1000_1_2 Resource : /junos/system/linecard/interface/logical/usage/ Version : 1.1 Sensor-id : 186469722 Subscription-ID : 1000 Parent-Sensor-Name : sensor_1000 Component(s) : PFE Profile Information : Name : export_1000 Reporting-interval : 2 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1000_4_1 Resource : /interfaces/ Version : 1.0 Sensor-id : 186472793 Subscription-ID : 1000 Parent-Sensor-Name : sensor_1000 Component(s) : mib2d Profile Information : Name : export_1000 Reporting-interval : 2 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1000_6_1 Resource : /interfaces/ Version : 1.0 Sensor-id : 186470745 Subscription-ID : 1000 Parent-Sensor-Name : sensor_1000 Component(s) : xmlproxyd Profile Information : Name : export_1000 Reporting-interval : 2 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1001 Resource : /junos/system/linecard/cpu/memory/ Version : 1.0 Sensor-id : 2657202 Subscription-ID : 1001 Parent-Sensor-Name : Not applicable Component(s) : PFE Profile Information : Name : export_1001 Reporting-interval : 1 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1002 Resource : /bgp/ Version : 1.0 Sensor-id : 2657201 Subscription-ID : 1002 Parent-Sensor-Name : Not applicable Component(s) : rpd Profile Information : Name : export_1002 Reporting-interval : 10 Payload-size : 5000 Format : GPB Sensor Information : Name : sensor_1003 Resource : /components/ Version : 1.0 Sensor-id : 2657200 Subscription-ID : 1003 Parent-Sensor-Name : Not applicable Component(s) : chassisd Profile Information : Name : export_1003 Reporting-interval : 10 Payload-size : 5000 Format : GPB </code></pre> <h3>Summary</h3> <p>The JTI client tool is a nifty open-source too to analyze, troubleshoot and learn about the streaming telemetry capabilities via gRPC.&nbsp;For more information, check out the following resources:</p> <ul> <li><a href="https://techmocha.blog/2017/08/21/using-opennti-as-a-collector-for-streaming-telemetry-from-juniper-devices-part-3/" data-di-id="di-id-ae7c595a-73d3c27c" rel="nofollow noopener noreferrer">Using OpenNTI as a collector for&nbsp;streaming&nbsp;telemetry&nbsp;from&nbsp;Juniper&nbsp;Devices: Part 3</a></li> <li><a href="https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-telemetry-interface/junos-telemetry-interface.pdf" data-di-id="di-id-8d007ce7-181a1b" rel="nofollow noopener noreferrer">Junos Telemetry Interface Feature Guide</a></li> <li><a href="https://github.com/nileshsimaria/jtimon" data-di-id="di-id-10b09d7d-67733386" rel="nofollow noopener noreferrer">Junos Telemetry Interface client</a></li> </ul> </div><br><a data-tag-text="How-To" data-sign="#" class="user-content-hashtag" href="https://juniper.connectedcommunity.org/search?s=tags%3A%22How-To%22&amp;executesearch=true" data-tag-key="486b64ce-f390-48dc-abab-c574436e29f0">#How-To</a> </div> </div> <div class="row"> <div class="col-md-12"> </div> </div> </div> </div> <script> System.import('Directory/BlogDisplay.js').then(function (module) { (new module.BlogDisplay({ controlId: 'MainCopy_ctl02_UpdatePanel3', hypSubmitToGoogleId: 'MainCopy_ctl02_ucPermission_hypSubmitToGoogle', hypSubmitToBingId: 'MainCopy_ctl02_ucPermission_hypSubmitToBing' })).init(); }); </script> </div><div class="ContentUserControl"> </div></div></div> <div id="MainCopy_extraPanel"> </div> </div> </div> <!--end content--> </div> </div> <div id="MPOuterFooter" class="row siteFrame"> <div id="FOOTER" class="col-md-12"> <div id="MPFooter" class="row"> <div class="Footer col-md-12"> <div id="FooterContent"> </div> <div id="MPBottomMenu" class="MPBottomMenu" align="center"> </div> </div> </div> <div class="row"> <div id="MPCopyright" class="col-md-12"> Copyright � 2020 Elevate Community | Juniper Networks. All rights reserved. </div> </div> <div class="ContentItemHtml juniper-global-footer-wrapper"><div class="HtmlContent"></div><div class="HtmlFooter"></div></div><div class="ContentItemHtml"><div class="HtmlContent"><style> sw-primary-nav{position:relative;display:block;box-sizing:border-box;font-family:'lato', Arial, Helvetica, sans-serif;font-size:16px;line-height:1.2;font-weight:500;color:black;min-height:66px;max-width:1440px;margin:0 auto;z-index:1020}sw-primary-nav *,sw-primary-nav *:before,sw-primary-nav *:after{position:relative;box-sizing:inherit}sw-primary-nav,sw-primary-nav header{background-color:white}sw-primary-nav a,sw-primary-nav button{position:relative;font-family:'lato', Arial, Helvetica, sans-serif;font-size:16px;line-height:1.2;-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none;color:black;text-decoration:none;font-weight:700;padding:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:transparent;cursor:pointer;transition:color 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}sw-primary-nav a:hover,sw-primary-nav button:hover{color:#6b991a}sw-primary-nav a svg,sw-primary-nav button svg{fill:currentColor}sw-primary-nav a.main-nav__logo,sw-primary-nav button.main-nav__logo{padding-left:22px}sw-primary-nav ul{list-style:none;padding:0;margin:0}sw-primary-nav[mobile-open] .main-nav__header--mobile{position:fixed;width:100%;height:100%;z-index:1;top:0;left:0}.main-nav__header--desktop{display:flex}.main-nav__main{display:flex;flex-direction:column;flex:1;width:100%;height:100px}.main-nav__promo{flex:0 0 auto;height:100px;width:100px}.main-nav__promo a{display:inline-flex;align-items:center;color:white;text-align:center;font-size:16px;line-height:1.2;letter-spacing:0.025em;padding:15px;height:100%;background-color:#84b135}.main-nav__promo a:hover{color:white;background-color:#6b991a}.main-nav__header--mobile .main-nav__promo{height:50px}sw-primary-nav[mobile-open] .main-nav__header--mobile .main-nav__promo{width:100%}.main-nav__header--mobile .main-nav__promo a{width:100%}.main-nav__bar{display:flex;align-items:center;padding:0 16px;flex:1;justify-content:space-between}.main-nav__logo sw-nav-svg{width:120px;height:66px}.main-nav__logo-spacer{display:inline-block;width:32px;flex:0 0 32px}.main-nav__top-level{position:static;display:inline-flex;align-items:center;flex:0 0 auto}.main-nav__top-level-trigger a{padding:24px;display:inherit}.main-nav__flex-fill{flex:1 1 auto;min-width:16px}.main-nav__mobile-triggers button{position:relative;display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;right:-8px}.main-nav__search--desktop{position:relative;flex:0 1 300px;transition:opacity 250ms,padding .1s}.main-nav__search--desktop--focus{flex:1 1 100%}.main-nav__search input[type='search']{position:relative;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:'lato', Arial, Helvetica, sans-serif;font-size:16px;line-height:1;height:40px;border:none;box-shadow:0 0 0 1px #eee;margin:0;min-width:0}.main-nav__search input[type='search']::-webkit-search-decoration{display:none}.main-nav__search--desktop input[type='search']{padding:8px 40px 8px 16px;width:100%}.main-nav__search--mobile input[type='search']{flex:1 1 auto;padding:8px 16px}.main-nav__search--desktop button[type='submit']{position:absolute;display:inline-flex;justify-content:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;top:0;right:0;height:40px;width:40px;padding:0;border:none;background:none}.main-nav__search--mobile form{display:flex;padding:8px 16px 16px}.main-nav__search--mobile button[type='submit']{background-color:black;color:white;white-space:nowrap;padding:0 16px}.main-nav__search--mobile button[type='submit']:hover{color:white;background-color:#6b991a}ul.main-nav__util{position:relative;display:flex;height:34px;background-color:#e7eaeb;justify-content:flex-end;flex:0 0 auto;padding:0 8px}.main-nav__util-item{position:relative}.main-nav__util-item sw-nav-flyout{top:99%}.main-nav__util-item:first-child sw-nav-flyout{left:50%}.main-nav__util-trigger,.main-nav__util-link{position:relative;display:inline-flex;align-items:center;padding:0 8px;line-height:16px;height:34px}.main-nav__util-trigger span{margin-right:4px}.main-nav__util-trigger svg+span{margin-right:0;margin-left:4px}.main-nav__panel-wrapper{position:relative;display:flex;flex-direction:column;background:white;opacity:0;width:100%;height:0;max-height:calc(100% - 66px);transition-property:height, opacity;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-duration:300ms}.main-nav__panel-wrapper:focus{outline:none}.main-nav__panel-wrapper:not([aria-hidden]){opacity:1;height:100vh}.main-nav__panel-list{position:relative;display:flex;flex-direction:column;overflow:auto;flex:0 1 auto}.main-nav__panel-list-item{position:relative;display:block;background-color:#f0f3f5}.main-nav__panel-wrapper,.main-nav__panel-list,.main-nav__panel-list-item{box-shadow:0 0 0 1px #b5b8b9}.main-nav__panel-list-item.active{color:#6b991a;order:-1;fill:currentColor}.main-nav__panel-list-item.active{background-color:white}.main-nav__panel-action{color:currentColor;display:block;padding:16px 48px 16px 16px;width:100%;text-align:left}.main-nav__panel-action:focus{z-index:1}.main-nav__panel-action--back{z-index:1}.main-nav__panel-action--back,.main-nav__panel-action--utility{width:100%;padding:16px 48px;background-color:white;flex:0 0 auto;box-shadow:0 0 0 1px #b5b8b9}.main-nav__panel-action svg{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none}.main-nav__panel-action svg:first-child{left:14px}.main-nav__panel-action svg:last-child{right:14px}.main-nav__panel-action--back svg{-webkit-transform:translateY(-50%) scaleX(-1);transform:translateY(-50%) scaleX(-1)}sw-nav-flyout{display:none;position:absolute;top:99%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);color:white;background-color:#4d5259;z-index:12}sw-nav-flyout[activeid*="-"] .flyout__wrapper{width:275px}sw-nav-flyout.align--right{left:initial;right:0;-webkit-transform:none;transform:none}sw-nav-flyout.align--right.account__list{right:-8px}sw-nav-flyout.align--right.account__list .flyout__wrapper{width:275px}sw-nav-flyout.sw__nav__flyout__wrapper--1{left:100%}sw-nav-flyout.sw__nav__flyout__wrapper--1.dede,sw-nav-flyout.sw__nav__flyout__wrapper--1.frfr{left:65%}sw-nav-flyout.sw__nav__flyout__wrapper--1.cnzh{left:75%}sw-nav-flyout.sw__nav__flyout__wrapper--1.jpjp,sw-nav-flyout.sw__nav__flyout__wrapper--1.krkr{left:60%}sw-nav-flyout.sw__nav__flyout__wrapper--4{left:250px}sw-nav-flyout.sw__nav__flyout__wrapper--2{left:275px}sw-nav-flyout.sw__nav__flyout__wrapper--3{left:100px}sw-nav-flyout.sw__nav__flyout__wrapper--4 .flyout__wrapper{width:500px}sw-nav-flyout a{display:block;color:currentColor}sw-nav-flyout a:hover,sw-nav-flyout a[selected=true]{color:#9dca4d}.flyout__wrapper{display:flex;padding:40px 0;width:250px}.flyout__wrapper.flyout__wrapper--2{width:600px}.flyout__wrapper.flyout__wrapper--4{width:1035px}.sw__nav__flyout__wrapper--2 .flyout__wrapper--3{width:930px}.sw__nav__flyout__wrapper--3 .flyout__wrapper--3{width:690px}.flyout__list{position:relative;list-style:none;padding:0;text-align:left;flex:1 1 auto;min-width:100px;padding:0 48px 0 40px}.account__list .flyout__list{padding:0 32px 0 30px}.flyout__list:not(:first-child){padding-left:0}.flyout__list+.flyout__list::before{content:'';position:absolute;top:4px;left:-24px;width:1px;height:calc(100% - 8px);border-left:1px solid rgba(242,242,242,0.166667)}.flyout__label{font-weight:700;letter-spacing:0.025em;margin-bottom:16px}.flyout__subtitle{margin-top:16px}.flyout__list-item{padding-left:8px}.flyout__list-item,.flyout__list-item a{display:block;font-size:16px;line-height:32px;letter-spacing:0.025em;font-weight:500}.flyout__list-item.flyout__list-item--separator{border-top:1px solid #b5b8b9;margin:16px 0}.main-nav__top-level-item{position:relative}.main-nav__has-submenu.cdk-focused:not(.cdk-mouse-focused)::after,.main-nav__has-submenu:hover::after{content:'';position:absolute;display:block;width:0;height:0;bottom:0;left:50%;top:87%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #4d5259}.main-nav__util .main-nav__has-submenu:hover::after{top:auto}.main-nav__has-submenu.cdk-focused:not(.cdk-mouse-focused) sw-nav-flyout,.main-nav__has-submenu:hover sw-nav-flyout{display:block}.main-nav__has-submenu.cdk-mouse-focused [aria-haspopup]{outline:0}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.main-nav__bypass{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.main-nav__bypass:focus{background-color:white;padding:8px 16px;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border:2px solid black;border-top-width:0;top:0;left:50%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);width:auto;height:auto;clip:auto;z-index:1070}sw-primary-footer{position:relative;display:block;box-sizing:border-box;font-family:'lato', Arial, Helvetica, sans-serif;background-color:#f0f3f5;font-size:16px;line-height:1.2;font-weight:500;color:#666}sw-primary-footer a{display:inline-block;color:black;text-decoration:none;font-weight:700;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}sw-primary-footer a:hover{color:#6b991a}sw-primary-footer ul{list-style:none;padding:0;margin:0}sw-primary-footer li{display:inline-block;margin:16px 0}.footer-top__layout{position:relative;display:-ms-grid;display:grid;grid-gap:24px;-ms-grid-rows:auto 24px auto 24px auto 24px auto;-ms-grid-columns:1fr;grid-template:' a ' ' b ' ' c ' ' d ' / 1fr}@media (min-width: 640px){.footer-top__layout{grid-gap:24px;-ms-grid-rows:auto 24px auto;-ms-grid-columns:1fr 24px 1fr;grid-template:' a b ' ' c d ' / 1fr 1fr}}@media (min-width: 960px){.footer-top__layout{grid-gap:24px;-ms-grid-rows:auto;-ms-grid-columns:1fr 24px 1fr 24px 1fr 24px 1fr;grid-template:' a b c d ' / 1fr 1fr 1fr 1fr}}.footer-top__layout .footer__col:nth-child(1){-ms-grid-row:1;-ms-grid-column:1;grid-area:a}.footer-top__layout .footer__col:nth-child(2){-ms-grid-row:3;-ms-grid-column:1;grid-area:b}.footer-top__layout .footer__col:nth-child(3){-ms-grid-row:5;-ms-grid-column:1;grid-area:c}.footer-top__layout .footer__col:nth-child(4){-ms-grid-row:7;-ms-grid-column:1;grid-area:d}@media (min-width: 640px){.footer-top__layout .footer__col:nth-child(1){-ms-grid-row:1;-ms-grid-column:1}.footer-top__layout .footer__col:nth-child(2){-ms-grid-row:1;-ms-grid-column:3}.footer-top__layout .footer__col:nth-child(3){-ms-grid-row:3;-ms-grid-column:1}.footer-top__layout .footer__col:nth-child(4){-ms-grid-row:3;-ms-grid-column:3}}@media (min-width: 960px){.footer-top__layout .footer__col:nth-child(1){-ms-grid-row:1;-ms-grid-column:1}.footer-top__layout .footer__col:nth-child(2){-ms-grid-row:1;-ms-grid-column:3}.footer-top__layout .footer__col:nth-child(3){-ms-grid-row:1;-ms-grid-column:5}.footer-top__layout .footer__col:nth-child(4){-ms-grid-row:1;-ms-grid-column:7}}.footer__top{padding:32px;max-width:1440px;margin:0 auto}.footer__col-title{display:block;font-weight:800;margin-bottom:1em}.footer__col--links li{display:block}.footer__col--newsletter a{background-color:#84b135;color:white;padding:12px 24px}.footer__col--newsletter a:hover{background-color:#538100;color:white}.footer__col--social{display:flex;flex-direction:column;justify-content:space-between}.footer__social sw-nav-svg{width:36px}.footer__social li{margin:0 4px 4px}.footer__social li:first-child{margin-left:0}.footer__copyright{font-size:14px;line-height:1.4;margin-top:24px}.footer__bottom{position:relative;display:flex;background-color:#e7eaeb;justify-content:center;font-size:14px;line-height:1.4}.footer__bottom ul{max-width:1440px;padding:8px 32px}.footer__bottom li{margin:8px 32px 8px 0}@media (max-width: 639px){.footer__bottom ul{flex:1}.footer__bottom li{display:block}}sw-nav-svg{display:inline-block;vertical-align:middle;fill:currentColor;width:24px;height:24px} /*# sourceMappingURL=global-navigation_1-0-0-rc-0.css.map*/ </style></div><div class="HtmlFooter"></div></div><div class="ContentItemHtml juniper-global-nav-js hidden"><div class="HtmlContent">https://www.juniper.net/assets/scripts/global-nav.js</div><div class="HtmlFooter"></div></div><div class="ContentItemHtml juniper-relative-url-fix-js hidden"><div class="HtmlContent">https://events.juniper.net/assets/scripts/custom/events.js</div><div class="HtmlFooter"></div></div><div class="ContentUserControl"> <script charset="utf-8">$(document).ready(function () { var isAuthenticated = true; //Check to see if there is an authenticated user on the HL side or not if ($('#Welcome_NotLoggedIn').length === 1) { isAuthenticated = false; //if notAuthenticated, start by wiping any previously injected cookies to keep the sessions in-sync (i.e. if the user is "not-authenicated" due to a log out) /* $.removeCookie("saml_user", null, { path: '/' }); */ document.cookie = "saml_user=; expires=Thu, 01 Jan 1970 00:00:00 UTC;"; } var loadHeader = $('.juniper-global-nav-wrapper').load('https://www.juniper.net/assets/ssi/global-nav/header.html'); var loadFooter = $('.juniper-global-footer-wrapper').load('https://www.juniper.net/assets/ssi/global-nav/footer.html'); $.when(loadHeader, loadFooter).done(function () { var isAuthenticated = true; //Check to see if there is an authenticated user on the HL side or not if ($('#Welcome_NotLoggedIn').length === 1) { isAuthenticated = false; } if (!isAuthenticated) { userNotAuthenticated(); } else { userAuthenticated(); } }); }); //Start function declarations function userNotAuthenticated() { //if notAuthenticated, start by wiping any previously injected cookies to keep the sessions in-sync (i.e. if the user is "not-authenicated" due to a log out) Cookies.remove('saml_user', null, { path: window.location.pathname }); //Then run Juniper-specific scripts runJuniperScripts(); //poll and wait until header fully renders relevent link objects before running href updates for HL-specific needs (polling check is every 1 millisecond up to max of 10 seconds) var checkForHeaderLinksRender = setInterval(function () { //Set a start time to cap max poll interaval var pollingIntervalStartTime = new Date().getTime(); var tenSeconds = 10000; if (window.innerWidth > 1024) { //If link not yet rendered or 10 secs has elapsed, clear the polling and make href updates (if it takes longer than 10 seconds to render it is likely a larger issue) if ($('header a[data-navid=signIn]').length !== 0 || new Date().getTime() - pollingIntervalStartTime > tenSeconds) { //Clear polling interval and run href updates clearInterval(checkForHeaderLinksRender); $('header a[data-navid=signIn]').attr('href', 'https://community.juniper.net/HigherLogic/Security/SAML/LocalSamlLoginService.aspx?binding=HttpPost&ReturnUrl=' + window.location.href); } } else { //If link not yet rendered or 10 secs has elapsed, clear the polling and make href updates (if it takes longer than 10 seconds to render it is likely a larger issue) if ($('header.main-nav__header--mobile a.main-nav__panel-action[href*=login]').length !== 0 || new Date().getTime() - pollingIntervalStartTime > tenSeconds) { //Clear polling interval and run href updates clearInterval(checkForHeaderLinksRender); $('header.main-nav__header--mobile a.main-nav__panel-action[href*=login]').attr('href', 'https://community.juniper.net/HigherLogic/Security/SAML/LocalSamlLoginService.aspx?binding=HttpPost&ReturnUrl=' + window.location.href); } } //polling check is every 1 millisecond }, 1); } function userAuthenticated() { //Start by running api call to grab authenticated user info. Pass runJuniperScripts as a callback to be executed when finished. getAuthenticatedUserInfo(runJuniperScripts); //poll and wait until header fully renders relevent link objects before running href updates for HL-specific needs (polling check is every 1 millisecond up to max of 10 seconds) var checkForHeaderLinksRender = setInterval(function () { //Set a start time to cap max poll interaval var pollingIntervalStartTime = new Date().getTime(); var tenSeconds = 10000; if (window.innerWidth > 1024) { //If link not yet rendered or 10 secs has elapsed, clear the polling and make href updates (if it takes longer than 10 seconds to render it is likely a larger issue) if ($('header a[data-navid=signOut]').length !== 0 || new Date().getTime() - pollingIntervalStartTime > tenSeconds) { //Clear polling interval and run href updates clearInterval(checkForHeaderLinksRender); //Run Juniper specfic updates first runJuniperScripts(); //Then make HL-specific updates $('header a[data-navid=signOut]').attr('href', 'https://community.juniper.net/HigherLogic/Security/SAML/LocalSamlLogoutService.aspx?binding=HttpPost&ReturnUrl=' + window.location.href); } } else { //If link not yet rendered or 10 secs has elapsed, clear the polling and make href updates (if it takes longer than 10 seconds to render it is likely a larger issue) if ($('header.main-nav__header--mobile a.main-nav__panel-action[href*=logout]').length !== 0 || new Date().getTime() - pollingIntervalStartTime > tenSeconds) { //Clear polling interval and run href updates clearInterval(checkForHeaderLinksRender); $('header.main-nav__header--mobile a.main-nav__panel-action[href*=logout]').attr('href', 'https://community.juniper.net/HigherLogic/Security/SAML/LocalSamlLoginService.aspx?binding=HttpPost&ReturnUrl=' + window.location.href); } } //polling check is every 1 millisecond }, 1); } function getAuthenticatedUserInfo(scriptToRunAfterApiCall) { //use HL API to grab currently authenticated user's details $.ajax({ type: 'GET', url: 'https://api.connectedcommunity.org/api/v2.0/Contacts/GetWhoAmI', datatype: "application/json", headers: { "HLIAMKey": "2727ca36-1fe2-4227-b0ae-62e446cc9656" }, xhrFields: { withCredentials: true }, success: function (response) { var authenticatedUserName; if (response.ContactKey === '00000000-0000-0000-0000-000000000000') { //continually loop through function until we get a reponse for the authenticated user (zeros means the response not providing info for any user) getAuthenticatedUserInfo(runJuniperScripts); } else { //create user name based on response values if (!response.FirstName && !response.LastName) { authenticatedUserName = response.DisplayName; } else { authenticatedUserName = response.FirstName + " " + response.LastName; } console.log('The authenticated user = ' + authenticatedUserName); //if Juniper-specific saml cookie doesnt already exist, create it if (!Cookies.get('saml_user')) { document.cookie = 'saml_user=' + authenticatedUserName; console.log('cookie created'); scriptToRunAfterApiCall(); } else { scriptToRunAfterApiCall(); } } }, error: function (error) { console.log('Call failed.'); } }); }; function runJuniperScripts() { var checkForHeaderSvgRender = setInterval(function () { //Set a start time to cap max poll interaval var pollingIntervalStartTime = new Date().getTime(); var tenSeconds = 10000; if (window.innerWidth > 1024) { //If link not yet rendered or 10 secs has elapsed, clear the polling and make href updates (if it takes longer than 10 seconds to render it is likely a larger issue) if ($('.juniper-global-nav-wrapper sw-primary-nav').length !== 0 || new Date().getTime() - pollingIntervalStartTime > tenSeconds) { //Clear polling interval and run href updates clearInterval(checkForHeaderSvgRender); let globalNavScript = document.createElement('script'); globalNavScript.src = $('.juniper-global-nav-js .HtmlContent').text(); $('body').append(globalNavScript); let relativeUrlFixScript = document.createElement('script'); relativeUrlFixScript.src = $('.juniper-relative-url-fix-js .HtmlContent').text(); $('body').append(relativeUrlFixScript); } } }, 1); }</script> </div><div class="ContentItemHtml"><div class="HtmlContent"></div><div class="HtmlFooter"></div></div><div class="ContentItemHtml"><div class="HtmlContent"><!-- Twitter universal website tag code --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o1oeb'); twq('track','PageView'); </script> <!-- End Twitter universal website tag code --></div><div class="HtmlFooter"></div></div><div class="ContentItemHtml"><div class="HtmlContent"><script type="text/javascript"> _linkedin_partner_id = "4751"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script> <script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=4751&fmt=gif" /> </noscript></div><div class="HtmlFooter"></div></div> <div class="row"> <div class="col-md-12"></div> </div> </div> </div> <div id="MPFooterLink" class="row siteFrame"> <div class="col-md-12"> <div id="MPFooterLinkContent"> <a href="http://www.higherlogic.com" target="_blank">Powered by Higher Logic</a> </div> </div> </div> <!--mp_base--><div id="GlobalPopupContainer"> <div id="GlobalPopupContent" > <img ID="imgGlobalProcessing" alt="" src="https://d2x5ku95bkycr3.cloudfront.net/img/loading.gif" /> </div> </div> <script type="text/javascript"> //<![CDATA[ var _suppressGlobalPopupContainer = false; Sys.Application.add_load(GlobalApplicationLoadHandler); function GlobalApplicationLoadHandler(sender, args) { var prm = Sys.WebForms.PageRequestManager.getInstance(); if (!prm.get_isInAsyncPostBack()) { prm.add_initializeRequest(initRequest); prm.add_endRequest(endRequest); } } function initRequest(sender, args) { if (!_suppressGlobalPopupContainer) { hl_common_ui_blockUI(); } } function endRequest(sender, args) { hl_common_ui_unBlockUI(); } WebForm_InitCallback();//]]> </script> <script type='text/javascript'>new Sys.WebForms.Menu({ element: 'AuxMenu', disappearAfter: 500, orientation: 'horizontal', tabIndex: 0, disabled: false });</script></form> </div> <script> $(document).ready(function () { var path = window.location.pathname; var lastChar = path.substr(-1); // Selects the last character if (lastChar != '?' && lastChar != '/' && lastChar != ';') { // If the last character is not a slash path = path + '/'; // Append a slash to it. } $('ul.navbar-nav a').each(function () { var myHref = $(this).attr('href').split("?")[0]; var lastChar2 = myHref.substr(-1); // Selects the last character if (lastChar2 != '?' && lastChar2 != '/' && lastChar2 != ';') { // If the last character is not a slash myHref = myHref + '/'; // Append a slash to it. } if (path == myHref) { $(this).parents('li').last().addClass('active current-page'); $(this).parent('li').addClass('active current-page'); } }); $('#modalTags').on('tagAdded', function () { var oldCount = parseInt($('#litCommunityTagsCount').text()); $('#litCommunityTagsCount').text(oldCount + 1); }).on('tagRemoved', function () { var oldCount = parseInt($('#litCommunityTagsCount').text()); $('#litCommunityTagsCount').text(oldCount - 1); }); var isImpersonating = false; $(window).bind('scroll', function () { var navHeight = $("#HEADER").height(); // Creating a stickyNav-filler to fill in the position of the stickyNav when it pops out of its position in the DOM to avoid the flicker experience if ($(document).scrollTop() > navHeight) { if (isImpersonating) $('#pnlImpersonation').addClass('sticky'); if ($('.stickyNav-filler').length === 0) { $('#NAV').parent() .append($('<div class="stickyNav-filler"></div>').height($('#NAV').height())); $('#NAV').addClass( 'stickyNav stickyNav-full '); } } else { if (isImpersonating) $('#pnlImpersonation').removeClass('sticky'); if ($('.stickyNav-filler').length > 0) { $('.stickyNav-filler').remove(); $('#NAV').removeClass( 'stickyNav stickyNav-full '); } } }); }); //var btn = $.fn.button.noConflict(); // reverts $.fn.button to jqueryui btn //$.fn.btn = btn; // assigns bootstrap button functionality to $.fn.btn </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10