SlideShare a Scribd company logo
1 of 21
Cisco Confidential© 2010 Cisco and/or its affiliates. All rights reserved. 1
Network OS Bullseye code
coverage demo
Vikram Hosakote
vhosakot@cisco.com
June 21, 2012
Software Engineer – NOSTG
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2
• What is Bullseye ?
• Building a Bullseye NXOS image
• Generating Bullseye code-coverage numbers in NXOS
• Post-processing on NXOS Linux build server
• Merging coverage reports
• Viewing coverage-numbers in the Bullseye GUI
• Demo
• Automation ideas, eARMS integration ideas, HA testing like SSO and ISSU
• Bullseye help
• Q&A
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3
• A tool to capture coverage of C and C++ code.
• Used to generate code-coverage numbers in NXOS at Cisco.
• What is code coverage ?
The ratio of number of lines of code tested to number of lines of code developed. A number less
than 100.
Example –
If LDP is developed with 100 lines of code, and just 50 lines tested, the code coverage is
50 / 100 = 50%
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4
• Talk to component DEs and find out
• The component name that needs Bullseye instrumentation (e.g. BGP, MPLS, LDP)
• The directory structure of code and binaries (e.g. build/x86s/gdb/ldp/sup, routing-
sw/mpls/ldp/nxos/cradle/)
• New filenames, function names, and new lines of code developed (e.g. ldp_feature.c,
ldp_cmi.h, ldp_cmi_show_neighbor_handler()). The new lines of code depend on the function
name, component, and the feature.
• If code-coverage is needed on supervisor, or line card, or both ?
• Access to NXOS Linux build server
• The exact RELEASE TAG in the build tree (e.g. REL_5_2_5_S30)
• Use this link to build the Bullseye NXOS image using ACME, gmake, and isanadd CLIs
http://zed.cisco.com/confluence/display/DC3SW/NX-OS+Quality+Initiative
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
• Load the Bullseye NXOS images – both kickstart and system
• Run the tests
• Code coverage file bootflash:code_coverage/<component>.cov is created both on active and
standby
• Copy this coverage file from both active and standby to the NXOS Linux build server via FTP /
TFTP
• Do post-processing (next slide) and generate coverage-numbers
• In eARMS, submit Bullseye images like regular NXOS images
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6
• Install Bullseye on the NXOS Linux build server by doing
source /auto/andatc/independent/shellrc-files/current/rc/.cshrc.build
setenv PATH "${PATH}:/auto/andatc/linux/bullseye/7.5.41/bin/"
setenv BULLSEYE_VERSION "7.5.41"
module add bullseye ; which covbr
• Use these Bullseye CLIs with the coverage file <component>.cov for post-processing
covsrc (coverage by source filename)
covdir (coverage by source file directory)
covfn (function coverage, whether a function was invoked or not)
• Bullseye CLIs to generate coverage Reports –
covhtml or –html option (generate HTML report)
-c option to generate output as comma separated values (CSV)
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7
NXOS-Linux-Build-Server# covsrc -f ldp.cov
Source Function Coverage C/D Coverage
--------------------------------- --------------------- ---------------------
...p/nxos/cradle/ldp_cltmgr_pss.c 21 / 29 = 72% 35 / 94 = 37%
...pls/ldp/nxos/cradle/ldp_main.c 13 / 17 = 76% 71 / 111 = 63%
...s/ldp/nxos/cradle/ldp_cltmgr.c 45 / 57 = 78% 123 / 268 = 45%
...mpls/ldp/nxos/cradle/ldp_mts.c 47 / 57 = 82% 173 / 312 = 55%
...mpls/ldp/nxos/cradle/ldp_cdb.c 21 / 25 = 84% 61 / 129 = 47%
...s/ldp/nxos/cradle/ldp_sysmgr.c 34 / 40 = 85% 84 / 148 = 56%
...mpls/ldp/nxos/cradle/ldp_pss.c 22 / 25 = 88% 61 / 106 = 57%
...p/nxos/cradle/ldp_utils_nxos.c 25 / 26 = 96% 52 / 87 = 59%
...os/cradle/ldp_cltmgr_pss_tlv.c 3 / 3 = 100% 14 / 27 = 51%
.../nxos/cradle/ldp_cdb_pss_tlv.c 3 / 3 = 100% 22 / 36 = 61%
.../ldp/nxos/cradle/ldp_feature.c 11 / 11 = 100% 43 / 68 = 63%
...cmn/include_lcs/ldpx_mem_api.h 1 / 1 = 100% 0 / 0
...nxos/libldpclt/ldpc_cmn_mmsg.h 1 / 1 = 100% 0 / 0
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8
NXOS-Linux-Build-Server# covdir -f ldp.cov
Directory Function Coverage C/D Coverage
--------------------------------- --------------------- ---------------------
...-bxb/Bullseye/include/routing/ 3 / 141 = 2% 14 / 366 = 3%
...g-sw/mpls/ldp/cmn/include_lcs/ 2 / 27 = 7% 0 / 10 = 0%
...ng-sw/mpls/ldp/nxos/libldpclt/ 7 / 12 = 58% 14 / 47 = 29%
...uting-sw/mpls/ldp/nxos/cradle/ 388 / 617 = 62% 1197 / 3349 = 35%
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9
NXOS-Linux-Build-Server# covfn -f ldp.cov
Function Source Line FnCov C/D Coverage
-------- --------------------------------------- ----- ---------------------
ldp...me ...mpls/ldp/nxos/cradle/ldp_cmi.c 3699 1 / 1 8 / 10 = 80%
ldp...it ...mpls/ldp/nxos/cradle/ldp_pss.c 472 1 / 1 8 / 10 = 80%
ldp...rs ...s/ldp/nxos/cradle/ldp_sysmgr.c 465 1 / 1 8 / 10 = 80%
ldp...ng ...mpls/ldp/nxos/cradle/ldp_cdb.c 55 1 / 1 4 / 5 = 80%
ldp...it ...pls/ldp/nxos/cradle/ldp_main.c 201 1 / 1 10 / 12 = 83%
ldp...sz .../nxos/cradle/ldp_cdb_pss_tlv.c 490 1 / 1 5 / 6 = 83%
ldp...ey ...s/ldp/nxos/cradle/ldp_cltmgr.c 295 1 / 1 5 / 6 = 83%
ldp...it ...p/nxos/cradle/ldp_utils_nxos.c 259 1 / 1 5 / 6 = 83%
ldp...et ...mpls/ldp/nxos/cradle/ldp_mts.c 1637 1 / 1 12 / 14 = 85%
ldp...ad ...mpls/ldp/nxos/cradle/ldp_mts.c 1850 1 / 1 14 / 16 = 87%
ldp...ad ...mpls/ldp/nxos/cradle/ldp_mts.c 1992 1 / 1 23 / 26 = 88%
ldp...ch ...mpls/ldp/nxos/cradle/ldp_mts.c 1351 1 / 1 9 / 10 = 90%
ldp...en ...mpls/ldp/nxos/cradle/ldp_pss.c 32 1 / 1 9 / 10 = 90%
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10
NXOS-Linux-Build-Server# covfn -f ldp.cov --html > ldp_covfn.html
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11
NXOS-Linux-Build-Server# covfn -f ldp.cov -c > ldp_covfn_csv
"ldp_base_init","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_main.c",201,1,10,12,83%
"ldp_cdb_pss_union_key_get_tlv_sz","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_cdb_pss_tlv.c",490,1,5,6,83%
"ldp_cm_fsb_lookup_by_clt_key","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_cltmgr.c",295,1,5,6,83%
"ldp_thread_info_init","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_utils_nxos.c",259,1,5,6,83%
"ldp_mts_msg_options_set","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_mts.c",1637,1,12,14,85%
"ldp_mts_sysmgr_thread","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_mts.c",1850,1,14,16,87%
"ldp_mts_ctrl_thread","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_mts.c",1992,1,23,26,88%
"ldp_dispatch","/ws/vhosakot-bxb/Bullseye/routing-sw/mpls/ldp/nxos/cradle/ldp_mts.c",1351,1,9,10,90%
"ldp_pss_uri_open","/ws/vhosakot-bxb/Bullseye/routing-
sw/mpls/ldp/nxos/cradle/ldp_pss.c",32,1,9,10,90%
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12
• Bullseye CLI covmerge is used for merging multiple coverage files (*.cov) from multiple N7K
routers.
• Example to merge coverage files from the active and standby of two N7Ks
covmerge -c –f merged_ldp_coverage.cov N7K1_active.cov N7K1_standby.cov N7K2_active.cov N7K2_standby.cov
• If
• A function has 4 decision paths (say 1,2,3 and 4), one N7K runs tests to cover paths 1 and 4,
and another N7K runs tests to cover paths 1 and 2,
• then
• The merged coverage file from both the N7Ks will show 75 % coverage (1,2,4). Path 3 will be
shown "uncovered"
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13
/auto/andatc/linux/bullseye/7.5.41/bin/CoverageBrowser ldp.cov &
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 14
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15
# Inside package CodeCoverage
proc get_bullseye_coverage_data {
{Bullseye_Build_Server_IP “101.0.0.102”}
{FTP_username “rcpuser”}
{FTP_Password “123rcp!”}
Component_Name} {
# Refer to flowchart on right 
USAGE
package require CodeCoverage
get_bullseye_coverage_data “ldp”
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16
• Read variable in job file –
set BULLSEYE_COVERAGE_NEEDED “yes”
OR
set BULLSEYE_COVERAGE_NEEDED $env(EARMS_CODE_COVERAGE)
• eARMS enhancement similar to CFLOW (CSCtw78100) -
• In eARMS, submit Bullseye images like regular NXOS images
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 17
• Unlike CFLOW, Bullseye coverage data will NOT get erased and will remain intact through
• Router reload
• Stateful Switchover (SSO)
• In Service Software Upgrade (ISSU)
• In Service Software Downgrade (ISSD)
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18
• http://www.bullseye.com/help/index.html
• http://www.bullseye.com/
• http://zed.cisco.com/confluence/display/DC3SW/NX-OS+Quality+Initiative
• https://and-sw-web.cisco.com/twiki/bin/view/Main/WebHome
• ACME commands - https://and-sw-web.cisco.com/twiki/bin/view/ACME/ACMECommands
• http://www.bullseye.com/contact.html
• and-sw-build@cisco.com
• Vikram Hosakote (vhosakot@cisco.com)
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19
• Webex recording of Bullseye demo to group.bstoner -
https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=61685767&rKey=0ec1c04f55cf4a23
• Webex recording of Bullseye demo to nostg-nxos-pi-test and nxos-pi-ft-core-team –
https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=61860282&rKey=8c23197cd63a9a18
• Webex recording of Bullseye demo to ASG-core and STEP teams –
https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=61903277&rKey=0a391701dee0c555
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20
Thank you.

More Related Content

What's hot

See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...LinuxCon ContainerCon CloudOpen China
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101HungWei Chiu
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...OpenStack Korea Community
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&KubernetesHungWei Chiu
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Matias Lespiau
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Chartbeat
 
DCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveDCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveMadhu Venugopal
 
How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)
How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)
How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)VirtualTech Japan Inc.
 
How Networking works with Data Science
How Networking works with Data Science How Networking works with Data Science
How Networking works with Data Science HungWei Chiu
 
[2015-11월 정기 세미나]K8s on openstack
[2015-11월 정기 세미나]K8s on openstack[2015-11월 정기 세미나]K8s on openstack
[2015-11월 정기 세미나]K8s on openstackOpenStack Korea Community
 
Network performance test plan_v0.3
Network performance test plan_v0.3Network performance test plan_v0.3
Network performance test plan_v0.3David Pasek
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101HungWei Chiu
 
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6David Pasek
 
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalDocker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalMichelle Antebi
 
DevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructure
DevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructureDevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructure
DevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructureAngelo Failla
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...OpenStack Korea Community
 

What's hot (20)

See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101
 
SecurityPI - Hardening your IoT endpoints in Home.
SecurityPI - Hardening your IoT endpoints in Home. SecurityPI - Hardening your IoT endpoints in Home.
SecurityPI - Hardening your IoT endpoints in Home.
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
 
Ceph on rdma
Ceph on rdmaCeph on rdma
Ceph on rdma
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&Kubernetes
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2
 
Running Legacy Applications with Containers
Running Legacy Applications with ContainersRunning Legacy Applications with Containers
Running Legacy Applications with Containers
 
DCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveDCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep dive
 
How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)
How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)
How logging makes a private cloud a better cloud - OpenStack最新情報セミナー(2016年12月)
 
How Networking works with Data Science
How Networking works with Data Science How Networking works with Data Science
How Networking works with Data Science
 
Multicast in OpenStack Tips
Multicast in OpenStack TipsMulticast in OpenStack Tips
Multicast in OpenStack Tips
 
[2015-11월 정기 세미나]K8s on openstack
[2015-11월 정기 세미나]K8s on openstack[2015-11월 정기 세미나]K8s on openstack
[2015-11월 정기 세미나]K8s on openstack
 
Network performance test plan_v0.3
Network performance test plan_v0.3Network performance test plan_v0.3
Network performance test plan_v0.3
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
 
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
VMware ESXi - Intel and Qlogic NIC throughput difference v0.6
 
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalDocker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
 
DevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructure
DevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructureDevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructure
DevopsItalia2015 - DHCP at Facebook - Evolution of an infrastructure
 
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
 

Similar to Network OS Code Coverage demo using Bullseye tool

DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...
DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...
DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...DevSecCon
 
2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation
2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation
2013-07-21 MITRE Developer Days - Red Hat SCAP RemediationShawn Wells
 
Introducing Intelligence Into Your Malware Analysis
Introducing Intelligence Into Your Malware AnalysisIntroducing Intelligence Into Your Malware Analysis
Introducing Intelligence Into Your Malware AnalysisBrian Baskin
 
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in KubernetesDeep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in KubernetesAlluxio, Inc.
 
ROCm and Distributed Deep Learning on Spark and TensorFlow
ROCm and Distributed Deep Learning on Spark and TensorFlowROCm and Distributed Deep Learning on Spark and TensorFlow
ROCm and Distributed Deep Learning on Spark and TensorFlowDatabricks
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Dmitry Chuyko
 
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersDefcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersAlexandre Moneger
 
Keeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureKeeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureGene Gotimer
 
Threat Modelling - It's not just for developers
Threat Modelling - It's not just for developersThreat Modelling - It's not just for developers
Threat Modelling - It's not just for developersMITRE ATT&CK
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)Alexandre Moneger
 
Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!Michael Man
 
Sling Applications - A DevOps perspective
Sling Applications - A DevOps perspectiveSling Applications - A DevOps perspective
Sling Applications - A DevOps perspectiveRobert Munteanu
 
Rodrigo Almeida - Microkernel development from project to implementation
Rodrigo Almeida - Microkernel development from project to implementationRodrigo Almeida - Microkernel development from project to implementation
Rodrigo Almeida - Microkernel development from project to implementationFelipe Prado
 
Using packet-tracer, capture and other Cisco ASA tools for network troublesho...
Using packet-tracer, capture and other Cisco ASA tools for network troublesho...Using packet-tracer, capture and other Cisco ASA tools for network troublesho...
Using packet-tracer, capture and other Cisco ASA tools for network troublesho...Cisco Russia
 
UKOUG Tech17 - Stay Secure With Oracle Solaris
UKOUG Tech17 - Stay Secure With Oracle SolarisUKOUG Tech17 - Stay Secure With Oracle Solaris
UKOUG Tech17 - Stay Secure With Oracle SolarisJomaSoft
 

Similar to Network OS Code Coverage demo using Bullseye tool (20)

DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...
DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...
DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hu...
 
2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation
2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation
2013-07-21 MITRE Developer Days - Red Hat SCAP Remediation
 
Introducing Intelligence Into Your Malware Analysis
Introducing Intelligence Into Your Malware AnalysisIntroducing Intelligence Into Your Malware Analysis
Introducing Intelligence Into Your Malware Analysis
 
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in KubernetesDeep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
 
ROCm and Distributed Deep Learning on Spark and TensorFlow
ROCm and Distributed Deep Learning on Spark and TensorFlowROCm and Distributed Deep Learning on Spark and TensorFlow
ROCm and Distributed Deep Learning on Spark and TensorFlow
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?
 
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersDefcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 
Keeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureKeeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster Secure
 
Threat Modelling - It's not just for developers
Threat Modelling - It's not just for developersThreat Modelling - It's not just for developers
Threat Modelling - It's not just for developers
 
MySQL NoSQL APIs
MySQL NoSQL APIsMySQL NoSQL APIs
MySQL NoSQL APIs
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)
 
Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!Continuous Security: From tins to containers - now what!
Continuous Security: From tins to containers - now what!
 
Readme
ReadmeReadme
Readme
 
Sling Applications - A DevOps perspective
Sling Applications - A DevOps perspectiveSling Applications - A DevOps perspective
Sling Applications - A DevOps perspective
 
Rodrigo Almeida - Microkernel development from project to implementation
Rodrigo Almeida - Microkernel development from project to implementationRodrigo Almeida - Microkernel development from project to implementation
Rodrigo Almeida - Microkernel development from project to implementation
 
HPC_MPI_CICD.pptx
HPC_MPI_CICD.pptxHPC_MPI_CICD.pptx
HPC_MPI_CICD.pptx
 
Using packet-tracer, capture and other Cisco ASA tools for network troublesho...
Using packet-tracer, capture and other Cisco ASA tools for network troublesho...Using packet-tracer, capture and other Cisco ASA tools for network troublesho...
Using packet-tracer, capture and other Cisco ASA tools for network troublesho...
 
UKOUG Tech17 - Stay Secure With Oracle Solaris
UKOUG Tech17 - Stay Secure With Oracle SolarisUKOUG Tech17 - Stay Secure With Oracle Solaris
UKOUG Tech17 - Stay Secure With Oracle Solaris
 
How to configure esx to pass an audit
How to configure esx to pass an auditHow to configure esx to pass an audit
How to configure esx to pass an audit
 

More from Vikram G Hosakote

Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyVikram G Hosakote
 
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaCisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaVikram G Hosakote
 
Multi-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and DockerMulti-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and DockerVikram G Hosakote
 
Layer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus NetworksLayer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus NetworksVikram G Hosakote
 

More from Vikram G Hosakote (6)

Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in Sydney
 
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaCisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
 
OpenStack with OpenDaylight
OpenStack with OpenDaylightOpenStack with OpenDaylight
OpenStack with OpenDaylight
 
Multicast in OpenStack
Multicast in OpenStackMulticast in OpenStack
Multicast in OpenStack
 
Multi-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and DockerMulti-node ZUUL OpenStack gate for bare metal and Docker
Multi-node ZUUL OpenStack gate for bare metal and Docker
 
Layer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus NetworksLayer-3 BFD Optimization Proposals for Enterprise and Campus Networks
Layer-3 BFD Optimization Proposals for Enterprise and Campus Networks
 

Recently uploaded

Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 

Recently uploaded (20)

Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 

Network OS Code Coverage demo using Bullseye tool

  • 1. Cisco Confidential© 2010 Cisco and/or its affiliates. All rights reserved. 1 Network OS Bullseye code coverage demo Vikram Hosakote vhosakot@cisco.com June 21, 2012 Software Engineer – NOSTG
  • 2. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2 • What is Bullseye ? • Building a Bullseye NXOS image • Generating Bullseye code-coverage numbers in NXOS • Post-processing on NXOS Linux build server • Merging coverage reports • Viewing coverage-numbers in the Bullseye GUI • Demo • Automation ideas, eARMS integration ideas, HA testing like SSO and ISSU • Bullseye help • Q&A
  • 3. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3 • A tool to capture coverage of C and C++ code. • Used to generate code-coverage numbers in NXOS at Cisco. • What is code coverage ? The ratio of number of lines of code tested to number of lines of code developed. A number less than 100. Example – If LDP is developed with 100 lines of code, and just 50 lines tested, the code coverage is 50 / 100 = 50%
  • 4. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4 • Talk to component DEs and find out • The component name that needs Bullseye instrumentation (e.g. BGP, MPLS, LDP) • The directory structure of code and binaries (e.g. build/x86s/gdb/ldp/sup, routing- sw/mpls/ldp/nxos/cradle/) • New filenames, function names, and new lines of code developed (e.g. ldp_feature.c, ldp_cmi.h, ldp_cmi_show_neighbor_handler()). The new lines of code depend on the function name, component, and the feature. • If code-coverage is needed on supervisor, or line card, or both ? • Access to NXOS Linux build server • The exact RELEASE TAG in the build tree (e.g. REL_5_2_5_S30) • Use this link to build the Bullseye NXOS image using ACME, gmake, and isanadd CLIs http://zed.cisco.com/confluence/display/DC3SW/NX-OS+Quality+Initiative
  • 5. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5 • Load the Bullseye NXOS images – both kickstart and system • Run the tests • Code coverage file bootflash:code_coverage/<component>.cov is created both on active and standby • Copy this coverage file from both active and standby to the NXOS Linux build server via FTP / TFTP • Do post-processing (next slide) and generate coverage-numbers • In eARMS, submit Bullseye images like regular NXOS images
  • 6. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6 • Install Bullseye on the NXOS Linux build server by doing source /auto/andatc/independent/shellrc-files/current/rc/.cshrc.build setenv PATH "${PATH}:/auto/andatc/linux/bullseye/7.5.41/bin/" setenv BULLSEYE_VERSION "7.5.41" module add bullseye ; which covbr • Use these Bullseye CLIs with the coverage file <component>.cov for post-processing covsrc (coverage by source filename) covdir (coverage by source file directory) covfn (function coverage, whether a function was invoked or not) • Bullseye CLIs to generate coverage Reports – covhtml or –html option (generate HTML report) -c option to generate output as comma separated values (CSV)
  • 7. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7 NXOS-Linux-Build-Server# covsrc -f ldp.cov Source Function Coverage C/D Coverage --------------------------------- --------------------- --------------------- ...p/nxos/cradle/ldp_cltmgr_pss.c 21 / 29 = 72% 35 / 94 = 37% ...pls/ldp/nxos/cradle/ldp_main.c 13 / 17 = 76% 71 / 111 = 63% ...s/ldp/nxos/cradle/ldp_cltmgr.c 45 / 57 = 78% 123 / 268 = 45% ...mpls/ldp/nxos/cradle/ldp_mts.c 47 / 57 = 82% 173 / 312 = 55% ...mpls/ldp/nxos/cradle/ldp_cdb.c 21 / 25 = 84% 61 / 129 = 47% ...s/ldp/nxos/cradle/ldp_sysmgr.c 34 / 40 = 85% 84 / 148 = 56% ...mpls/ldp/nxos/cradle/ldp_pss.c 22 / 25 = 88% 61 / 106 = 57% ...p/nxos/cradle/ldp_utils_nxos.c 25 / 26 = 96% 52 / 87 = 59% ...os/cradle/ldp_cltmgr_pss_tlv.c 3 / 3 = 100% 14 / 27 = 51% .../nxos/cradle/ldp_cdb_pss_tlv.c 3 / 3 = 100% 22 / 36 = 61% .../ldp/nxos/cradle/ldp_feature.c 11 / 11 = 100% 43 / 68 = 63% ...cmn/include_lcs/ldpx_mem_api.h 1 / 1 = 100% 0 / 0 ...nxos/libldpclt/ldpc_cmn_mmsg.h 1 / 1 = 100% 0 / 0
  • 8. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8 NXOS-Linux-Build-Server# covdir -f ldp.cov Directory Function Coverage C/D Coverage --------------------------------- --------------------- --------------------- ...-bxb/Bullseye/include/routing/ 3 / 141 = 2% 14 / 366 = 3% ...g-sw/mpls/ldp/cmn/include_lcs/ 2 / 27 = 7% 0 / 10 = 0% ...ng-sw/mpls/ldp/nxos/libldpclt/ 7 / 12 = 58% 14 / 47 = 29% ...uting-sw/mpls/ldp/nxos/cradle/ 388 / 617 = 62% 1197 / 3349 = 35%
  • 9. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9 NXOS-Linux-Build-Server# covfn -f ldp.cov Function Source Line FnCov C/D Coverage -------- --------------------------------------- ----- --------------------- ldp...me ...mpls/ldp/nxos/cradle/ldp_cmi.c 3699 1 / 1 8 / 10 = 80% ldp...it ...mpls/ldp/nxos/cradle/ldp_pss.c 472 1 / 1 8 / 10 = 80% ldp...rs ...s/ldp/nxos/cradle/ldp_sysmgr.c 465 1 / 1 8 / 10 = 80% ldp...ng ...mpls/ldp/nxos/cradle/ldp_cdb.c 55 1 / 1 4 / 5 = 80% ldp...it ...pls/ldp/nxos/cradle/ldp_main.c 201 1 / 1 10 / 12 = 83% ldp...sz .../nxos/cradle/ldp_cdb_pss_tlv.c 490 1 / 1 5 / 6 = 83% ldp...ey ...s/ldp/nxos/cradle/ldp_cltmgr.c 295 1 / 1 5 / 6 = 83% ldp...it ...p/nxos/cradle/ldp_utils_nxos.c 259 1 / 1 5 / 6 = 83% ldp...et ...mpls/ldp/nxos/cradle/ldp_mts.c 1637 1 / 1 12 / 14 = 85% ldp...ad ...mpls/ldp/nxos/cradle/ldp_mts.c 1850 1 / 1 14 / 16 = 87% ldp...ad ...mpls/ldp/nxos/cradle/ldp_mts.c 1992 1 / 1 23 / 26 = 88% ldp...ch ...mpls/ldp/nxos/cradle/ldp_mts.c 1351 1 / 1 9 / 10 = 90% ldp...en ...mpls/ldp/nxos/cradle/ldp_pss.c 32 1 / 1 9 / 10 = 90%
  • 10. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10 NXOS-Linux-Build-Server# covfn -f ldp.cov --html > ldp_covfn.html
  • 11. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11 NXOS-Linux-Build-Server# covfn -f ldp.cov -c > ldp_covfn_csv "ldp_base_init","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_main.c",201,1,10,12,83% "ldp_cdb_pss_union_key_get_tlv_sz","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_cdb_pss_tlv.c",490,1,5,6,83% "ldp_cm_fsb_lookup_by_clt_key","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_cltmgr.c",295,1,5,6,83% "ldp_thread_info_init","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_utils_nxos.c",259,1,5,6,83% "ldp_mts_msg_options_set","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_mts.c",1637,1,12,14,85% "ldp_mts_sysmgr_thread","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_mts.c",1850,1,14,16,87% "ldp_mts_ctrl_thread","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_mts.c",1992,1,23,26,88% "ldp_dispatch","/ws/vhosakot-bxb/Bullseye/routing-sw/mpls/ldp/nxos/cradle/ldp_mts.c",1351,1,9,10,90% "ldp_pss_uri_open","/ws/vhosakot-bxb/Bullseye/routing- sw/mpls/ldp/nxos/cradle/ldp_pss.c",32,1,9,10,90%
  • 12. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12 • Bullseye CLI covmerge is used for merging multiple coverage files (*.cov) from multiple N7K routers. • Example to merge coverage files from the active and standby of two N7Ks covmerge -c –f merged_ldp_coverage.cov N7K1_active.cov N7K1_standby.cov N7K2_active.cov N7K2_standby.cov • If • A function has 4 decision paths (say 1,2,3 and 4), one N7K runs tests to cover paths 1 and 4, and another N7K runs tests to cover paths 1 and 2, • then • The merged coverage file from both the N7Ks will show 75 % coverage (1,2,4). Path 3 will be shown "uncovered"
  • 13. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13 /auto/andatc/linux/bullseye/7.5.41/bin/CoverageBrowser ldp.cov &
  • 14. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 14
  • 15. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15 # Inside package CodeCoverage proc get_bullseye_coverage_data { {Bullseye_Build_Server_IP “101.0.0.102”} {FTP_username “rcpuser”} {FTP_Password “123rcp!”} Component_Name} { # Refer to flowchart on right  USAGE package require CodeCoverage get_bullseye_coverage_data “ldp”
  • 16. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16 • Read variable in job file – set BULLSEYE_COVERAGE_NEEDED “yes” OR set BULLSEYE_COVERAGE_NEEDED $env(EARMS_CODE_COVERAGE) • eARMS enhancement similar to CFLOW (CSCtw78100) - • In eARMS, submit Bullseye images like regular NXOS images
  • 17. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 17 • Unlike CFLOW, Bullseye coverage data will NOT get erased and will remain intact through • Router reload • Stateful Switchover (SSO) • In Service Software Upgrade (ISSU) • In Service Software Downgrade (ISSD)
  • 18. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18 • http://www.bullseye.com/help/index.html • http://www.bullseye.com/ • http://zed.cisco.com/confluence/display/DC3SW/NX-OS+Quality+Initiative • https://and-sw-web.cisco.com/twiki/bin/view/Main/WebHome • ACME commands - https://and-sw-web.cisco.com/twiki/bin/view/ACME/ACMECommands • http://www.bullseye.com/contact.html • and-sw-build@cisco.com • Vikram Hosakote (vhosakot@cisco.com)
  • 19. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19 • Webex recording of Bullseye demo to group.bstoner - https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=61685767&rKey=0ec1c04f55cf4a23 • Webex recording of Bullseye demo to nostg-nxos-pi-test and nxos-pi-ft-core-team – https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=61860282&rKey=8c23197cd63a9a18 • Webex recording of Bullseye demo to ASG-core and STEP teams – https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=61903277&rKey=0a391701dee0c555
  • 20. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20