560 likes | 856 Vues
Introduction to IPD. Jo Simons (johan.simons@alcatel-lucent.com). Abbreviations. Tagged VLAN 802.1Q QinQ 802.1ad PBB 802.1ah. Responsibles. HW equipment Franky Verhulst, Chris Janssens Rack space Filip Vynckier IP addresses Luc Ongena Bootserver/access Marcel De Boer
E N D
Introduction to IPD Jo Simons (johan.simons@alcatel-lucent.com)
Abbreviations • Tagged VLAN 802.1Q • QinQ 802.1ad • PBB 802.1ah
Responsibles • HW equipment Franky Verhulst, Chris Janssens • Rack space Filip Vynckier • IP addresses Luc Ongena • Bootserver/access Marcel De Boer • Badge access Willy Blommaert, cc Franky Verhulst/Pierre Debuysschere • macaddr.c Erik Neel, Luc Ongena, Mike Shoemaker • training docu http://ask.ca.alcatel.com/src/select_course.jhtml?_DARGS=/src/update_src_profile.jhtml.5 • UTP cable colors: • yellow : GE network, normally only for the uplink of the GE switch of rack C in your row • red : FE network, normally only from rack C GE switch to every FE switch in every rack of every row • white : uplink of your sim or sim-to-sim connection • black : sim-to-sim connection crossed cable • blue : terminal server connection • oranje : external protocols • purple : overlay network • green : radius • brown : video
TestEquip TestEquip TestEquip … … … TestEquip TestEquip TestEquip Labo Setup (1/2) Global View Technical Room Mains Power Main Switch NoBreak Power Yellow (Gb Eth) Row%% Rack A (1) Rack B Rack C (2) … Rack I (8) Red Patchpanel NoBreak=RED NoBreak=RED NoBreak=RED PDU Green (RADIUS) TermServer PDU Power PDU Power PDU Power TestEquip SharedEquip TestEquip TestEquip White Grey Black (X) … … … TestEquip TestEquip TestEquip White Grey Black (X) White Grey Black (X) Extra Power Extra Power Extra Power Blue Blue
Labo Setup (2/2) Personal Configuration Desk Labo 138.203.16.167 Princess Config server Personal Config 138.203.17.67 00:1B:21:00:D5:94 LINUX With harddisk, connect to no-break power 138.203.16.93:200x Terminal Server 1 2 3 4 5 6 7 8 138.203.17.61 00:30:48:B0:E3:1B Sim1 138.203.17.62 00:30:48:B0:C4:A5 Sim2 138.203.x.y 138.203.17.63 00:30:48:B0:C3:DA Sim3 Diskless 138.203.17.64 00:30:48:B0:C3:8C Sim4 138.203.17.65 00:30:48:B0:C5:B4 Sim5 138.203.22.243 user=pc,pswd=12345678 138.203.17.66 00:30:48:B0:E2:CA WS-PC Sim6 1 2 3 4 5 6 7 8 PPC Firewall APCD0207C 172.31.165.11 172.31.x.y Alcanet
Test Setup (1/3) Logical Networks and Ports 138.203.17.63/32 138.203.17.64/32 192.168.3.3/32 SIM3 SIM4 192.168.4.4/32 CE3 CE4 .2 .1 1/1/1 .3 .4 .1 1/1/1 .2 192.168.33.0/30 10.34.1.0/29 192.168.44.0/30 1/1/4 1/1/3 1/1/5 1/1/6 1/1/6 .3 .3 .4 .4 1/1/5 192.168.3.0/24 192.168.4.0/24 10.35.1.0/29 10.46.1.0/29 10.36.1.0/29 10.45.1.0/29 192.168.6.0/24 192.168.5.0/24 1/1/3 .6 .6 .5 .5 1/1/4 SIM6 1/1/4 1/1/3 SIM5 CE6 CE5 .2 .1 1/1/1 .6 .5 .1 1/1/1 .2 192.168.66.0/30 10.56.1.0/29 192.168.55.0/30 1/1/5 1/1/6 192.168.6.6/32 192.168.5.5/32 138.203.17.66/32 138.203.17.65/32
Both setup : Logical networks and ports (1/3) 192.168.1.1/32 192.168.3.3/32 192.168.4.4/32 CE1 CE3 CE4 192.168.1.0/24 192.168.3.0/24 192.168.4.0/24 .2 .2 .2 192.168.11.0/30 192.168.33.0/30 192.168.44.0/30 1/1/1 .1 1/1/3 .1 .1 1/1/4 SIM1 138.203.17.61 138.203.17.63 SIM3 SIM4 138.203.17.64 .1 1/1/3 .3 1/1/1 .3 .4 10.13.1.0/29 10.34.1.0/29 1/1/4 1/1/3 AS=65100 AS=65300 1/1/5 1/1/6 200.2.1.1 1/1/2 .1 1/1/7 1/1/6 .3 .3 .4 .4 1/1/5 BGPFEED 10.35.1.0/29 10.46.1.0/29 200.2.1.2/24 10.12.1.0/29 10.36.1.0/29 10.45.1.0/29 LINUX eth2 1/1/1 .2 1/1/7 138.203.17.67 1/1/3 .6 .6 .5 .5 1/1/4 SIM2 SIM6 1/1/4 1/1/3 SIM5 .6 .5 10.56.1.0/29 1/1/5 1/1/6 138.203.17.62 138.203.17.66 138.203.17.65 .1 1/1/2 .1 1/1/6 .1 1/1/5 192.168.22.0/30 192.168.66.0/30 192.168.55.0/30 .2 .2 .2 CE2 192.168.2.0/24 CE6 192.168.6.0/24 CE5 192.168.5.0/24 192.168.2.2/32 192.168.6.6/32 192.168.5.5/32
Both setup : Provider Backbone Bridge (802.1ah) setup (2/3) Backbone Component Service Encapsulation Original Customer Frame B-DA B-SA 0x88A8 B-TAG/B-VID 0x88E7 Flags I-SID C-DA C-SA 0x8100 C-VLAN-ID 0x0800 C-Payload 138.203.17.62 138.203.17.63 138.203.17.64 nvram.dat SIM2 Both SIM3 CPM-A SIM4 CPM-B …o=ftptopology,… P4 P2 P2 panos/bin/7750-i386/network.top [node ids] sim1=1 … sim6=6 Linux=7 BgpFeed=8 [other] sim1=sr12,new_zealand_r1|swiss_r1 … [port mappings] # sim1 to sim2 1/1/1/2=p2 2/1/1/1=p2 isid=12 # sim1 to sim3 1/1/1/3=p2 3/1/1/1=p2 isid=13 # sim3 to sim4 3/1/1/4=p2 4/1/1/3=p2 isid=34 … P2 P1 P1 22:3F:01:01:00:07 22:3F:01:01:00:07 eth2 Switch P3 P4 Linux P2 P7 P1 P6 P5 SIM1 P2 SIM6 IOM-2 SIM5 IOM-1 P2 P2 138.203.17.61 138.203.17.66 138.203.17.65
Both setup : Network.top File (3/3) Syntax: [node ids] sim1=1 Contents: [node ids] sim1=1 sim2=2 sim3=3 sim4=4 sim5=5 sim6=6 [port mappings] # sim1 to sim2 1/1/1/2=p2 2/1/1/1=p2 isid=12 # sim1 to sim3 1/1/1/3=p2 3/1/1/1=p2 isid=13 # sim3 to sim4 3/1/1/4=p2 4/1/1/3=p2 isid=34 # sim3 to sim5 3/1/1/5=p2 5/1/1/3=p2 isid=35 # sim3 to sim6 3/1/1/6=p2 6/1/1/3=p2 isid=36 # sim4 to sim5 4/1/1/5=p2 5/1/1/4=p2 isid=45 # sim4 to sim6 4/1/1/6=p2 6/1/1/4=p2 isid=46 # sim5 to sim6 5/1/1/6=p2 6/1/1/5=p2 isid=56 SIM PC ref number SIM PC name [port mappings] # sim1 to sim2 1/1/1/2=p2 2/1/1/1=p2 isid=12 Service encapsulation I-SID to use Map onto To-SIM-PC physical NIC To-SIM-PC Port Id to map To-SIM-PC ref number Map onto From-SIM-PC physical NIC From-SIM-PC Port Id to map From-SIM-PC ref number
Distributed setup : Logical networks and ports (1/3) 192.168.1.1/32 192.168.3.3/32 192.168.4.4/32 CE1 CE3 CE4 192.168.1.0/24 192.168.3.0/24 192.168.4.0/24 .2 .2 .2 192.168.11.0/30 192.168.33.0/30 192.168.44.0/30 1/1/1 .1 1/1/3 .1 .1 1/1/4 SIM1 138.203.17.61 138.203.17.63 SIM3 CPM A 138.203.17.64 SIM4 IOM .1 1/1/3 .3 1/1/1 .3 .4 10.13.1.0/29 10.34.1.0/29 1/1/4 1/1/3 AS=65100 AS=65300 1/1/5 1/1/6 1/1/2 .1 1/1/6 .3 .3 .4 .4 1/1/5 10.35.1.0/29 10.46.1.0/29 10.12.1.0/29 10.36.1.0/29 10.45.1.0/29 1/1/1 .2 1/1/3 .6 .6 .5 .5 1/1/4 SIM2 SIM6 1/1/4 1/1/3 SIM5 CPM B .6 .5 10.56.1.0/29 1/1/5 1/1/6 138.203.17.62 138.203.17.66 138.203.17.65 .1 1/1/2 .1 1/1/6 .1 1/1/5 192.168.22.0/30 192.168.66.0/30 192.168.55.0/30 .2 .2 .2 CE2 192.168.2.0/24 CE6 192.168.6.0/24 CE5 192.168.5.0/24 192.168.2.2/32 192.168.6.6/32 192.168.5.5/32
Distributed setup : Provider Backbone Bridge (802.1ah) setup (2/3) Backbone Component Service Encapsulation Original Customer Frame B-DA B-SA 0x88A8 B-TAG/B-VID 0x88E7 Flags I-SID C-DA C-SA 0x8100 C-VLAN-ID 0x0800 C-Payload 138.203.17.62 138.203.17.63 distri backbone 138.203.17.64 nvram.dat SIM2 SIM3 Switch2 SIM4 …o=sr12,topology=network.top,… P1 P1 P2 P1 P3 panos/bin/7750-i386/network.top [node ids] sim1=1 sim2=2 sim3=3 sim4=4 sim5=5 sim6=6 [port mappings] # sim1 to sim2 1/1/1/2=p2 2/1/1/1=p2 isid=12 # sim1 to sim3 1/1/1/3=p2 3/1/1/1=p2 isid=13 # sim3 to sim4 3/1/1/4=p2 4/1/1/3=p2 isid=34 … P4 P2 P2 P2 P3 eth2 Switch1 P3 P4 Linux P2 P7 P1 P6 P5 SIM1 P2 SIM6 SIM5 P1 P2 P2 138.203.17.61 138.203.17.66 138.203.17.65
Test Setup : Distributed CPM/IOM Network.top File (3/3) Syntax: [node ids] sim1=1 Contents: [node ids] sim1=1 sim2=2 sim3=3 sim4=4 sim5=5 sim6=6 [port mappings] # sim1 to sim2 1/1/1/2=p2 2/1/1/1=p2 isid=12 # sim1 to sim3 1/1/1/3=p2 3/1/1/1=p2 isid=13 # sim3 to sim4 3/1/1/4=p2 4/1/1/3=p2 isid=34 # sim3 to sim5 3/1/1/5=p2 5/1/1/3=p2 isid=35 # sim3 to sim6 3/1/1/6=p2 6/1/1/3=p2 isid=36 # sim4 to sim5 4/1/1/5=p2 5/1/1/4=p2 isid=45 # sim4 to sim6 4/1/1/6=p2 6/1/1/4=p2 isid=46 # sim5 to sim6 5/1/1/6=p2 6/1/1/5=p2 isid=56 SIM PC ref number SIM PC name [port mappings] # sim1 to sim2 1/1/1/2=p2 2/1/1/1=p2 isid=12 Service encapsulation I-SID to use Map onto To-SIM-PC physical NIC To-SIM-PC Port Id to map To-SIM-PC ref number Map onto From-SIM-PC physical NIC From-SIM-PC Port Id to map From-SIM-PC ref number
Virtual port mapping: both vs distributed config (1/1) Both config SIMx CPMA SIMy IOM P1 P2 P3 P4 P1 P2 P3 P4 SIM PC Virtual port driver P1 P2 P3 P4 P1 P2 P3 P4 Switch P1 P2 P3 P4 P5 P6 P7 P8 Distributed config SIMx CPMA SIMy IOM P1 P2 P3 P4 P1 P2 P3 P4 ICC bus Hub/SW SIM PC Virtual port driver P1 P2 P3 P1 P2 P3 Switch P1 P2 P3 P4 P5 P6 P7 P8
Sim-PC Bootup (1/2) • Boot from floppy • Boot from bootserver Floppy Sim-PCx BootServer request bootcode bof.cfg nvram.dat bootrom.sys code TFTPBOOT Server DHCP Server Sim-PCx BootServer DHCP Request nvram.dat request bootcode bof.cfg, nvram.dat, code
Sim-PC Bootup (2/2) • Troubleshooting • If SIM PC and boot FTP server are in different network -> add static route to bof.cfg • static-route 138.203.0.0/16 next-hop 138.203.16.1 • static-route 172.31.0.0/16 next-hop 138.203.16.1 • Check cabling terminal-server -> SIM PC: straight network cable • Check RJ45-sub9 convertor plug: • 1 (not connected) • 2 black • 3 yellow • 4 brown • 5 red • 6 orange • 7 white • 8 blue • 9 (not connected) • green (cut off) • Use CTRL-X in terminal window to reboot SIM PC • Copy isa-aa.tim from ? to …/panos/bin/7750-i386 • Copy network.top to …/panos/bin/7750-i386
Build Environment • Sources on central CVS server in MountainView • One main branch called “i” • Labels to mark distributed builds, 5.0, 6.0, 6.1, 7.0, … • R (release) and S (system) builds • Every day rebuild = new label • Feature evolution/bug fixes per R build + porting to other R builds • Every month service release to customer (or bi-monthly) • Always checkout to local PC for local build / change • Change file permissions from RO to RW using ‘cvs edit’ or ‘chmod’ • Changes committed to CVS server • Don’t break working features -> RED button = idiot’s cup • Commit to small changes == small risks • Run express test (~20min) to verify consistent changes • Optional functional test suite to verify feature • New files must be created in CVS !!! • Commit starts build • 7450/7750/7717 product, operational/sim-PC platform • Buildall.sh does all platforms/products
How to scrub (1/1) • Prepare target env: cvs update + buildall of given release (i.e. 70R) • Send email to Piet w/output of dts –scrub • After scrub: • cd ws_xyz/panos • dts –merge –nb 77135-70S (base DTS w/changed items, gives list of cmds to sync) • Exec above generated cmds • ./buildall.sh –r (to verify proper merging) • cvs checking w/WinCVS (from panos level to see all changed files) • mkcurrent (if needed) • Addrelnote “DTS77135 …” (title of DTS) • Put dts in “fixsub” state • Monitor build (if cpm in HOPS == OK then should be OK) • Go home
Creating new MIB table (1/1) • Create new objects in agent/ti-mibs/TIMETRA-IPSEC-MIB.mib: • tmnxIPsecManSATableLastChanged • tmnxIPsecManSATable • tmnxIPsecManSAEntry (index) • TmnxIPsecManSAEntry (record) • table fields • Put fields + lastchanged object in (new) group: tmnxIPsecManSAGroup • Put tmnxIPsecManSAGroup in compliance group: tmnxIPsecManSACompliance • Put tmnxIPsecManSAGroup in agent/ti-mibs/CAPABILITY-xyz.mib files • cd agent/ti-mibs: tools/checkmibs.sh –check-all TIMETRA-IPSEC-MIB.mib • cd tools: conformance.pl ../TIMETRA-IPSEC-MIB.mib • Compile CAPABILITY-xyz.mib files in MIB browser, as these are not automatically recompiled local, can cause a build breakage after checkin !!! • Review mib contents: fields, attributes, default values (include Reva) • Generate agent code (ref email Tony, dd 08-apr-2009) • Merge .c and .h generated files w/operational code • Provide sia_..._set/get/check stub functions in agent/sia_stubs.c
Creating new MIB toplevel registration (1/1) • In agent/ti-mibs/TIMETRA-GLOBAL-MIB.mib: • add new module under timetraModules, i.e. timetraIPsecStaticSAMIBModule OBJECT IDENTIFIER ::= { timetraSRMIBModules 99 } • Create new MIB file with: • IMPORTS section • MODULE-IDENTITY • toplevel OBJECT IDENTIFIERs • tables + objects • Change capabilities MIBs with: • new entry in tmnx<platform>V<release>v0 list of object ID’s • new description of above ID: tmnx<feature>Caps<platform>V<release>v0 AGENT CAPABILITIES … SUPPORTS TIMETRA-<feature>-MIB
How to run a regress test (1/1) • cd ws_x/panos • Regress -notify email-address –reason “text” –platform 7750 –cvs_tag none –nobuild –runlevel express –testbed anrtb% -runtest cli_basic_4 • Ref email Tony 11-aug-2008 • Use script: rtexprquick <testbed> <workspace>
How to add a SNMP Trap (1/4) (old) • Add trap definition to MIB (ref tmnxPppoeNcpFailure, tmnxDiamAppMessageDropped) • Notification + child object(s), compliance, capabilities, ref vRtrIgmpHostInstantiationFail • Goto /logger/events and run mkxml.pl to generate XML file from MIB • mkxml.pl –new TIMETRA-IGMP-MIB.mib (generates tmp.xml.1234) • add path to Java SDK bin dir in .bashrc.local (/cygdrive/c/Program Files/Java/…/bin) • Merge tmp.xml.1234 with xyzt_msgs.xml existing one + modify “eventid” • Generate c/h files with mkmsgs.sh abcd.xml (generates abcd.c/abcd.h) • Merge abcd.c/h files into /logger/xyzt_msmgs.c/h files using Compare IT! • How to test: enable trace on changes: • configure.log.snmp-trap-group 97 trap-target pc address 138.203.22.243 snmpv2c notify-community common • config.log.log-id 97 from main to snmp • Add record to table • Call sbmPppoeNcpFailureTrap from CLI hook • Do SNMP get exact with key from trap • From kernel > jsh • logEvent_IGMP_vRtrIgmpHostInstantiationFail <parms>
How to add a SNMP Trap (2/4) (old) • Add trap definition to MIB (ref tmnxPppoeNcpFailure, tmnxDiamAppMessageDropped) • Notification + child object(s), compliance, capabilities, ref vRtrIgmpHostInstantiationFail • Goto /logger/events and run mkxml.pl to generate XML file from MIB • mkxml.pl –new TIMETRA-IGMP-MIB.mib (generates tmp.xml.1234) • add path to Java SDK bin dir in .bashrc.local (/cygdrive/c/Program Files/Java/…/bin) • Merge tmp.xml.1234 with xyzt_msgs.xml existing one + modify “eventid” • Generate c/h files with mknotifs.sh abcd.xml (generates abcd.c/abcd.h) • Merge abcd.c/h files into /logger/xyzt_msmgs.c/h files using Compare IT! • How to test: enable trace on changes: • configure.log.snmp-trap-group 97 trap-target pc address 138.203.22.243 snmpv2c notify-community common • config.log.log-id 97 from main to snmp • Add record to table • Call sbmPppoeNcpFailureTrap from CLI hook • Do SNMP get exact with key from trap • From kernel > jsh • logEvent_IGMP_vRtrIgmpHostInstantiationFail <parms>
How to add a SNMP Trap (3/4) (new) • Add trap definition to mgmt._agent/models/snmp/<MIB>.yang (ref tmnxPppoeNcpFailure, tmnxDiamAppMessageDropped) • Notification + child object(s), compliance, capabilities, ref vRtrIgmpHostInstantiationFail • Build and retrieve generated files • Goto /logger/events and run mkxml.pl to generate XML from generated MIB • mkxml.pl –new TIMETRA-IGMP-MIB.mib (generates tmp.xml.1234) • add path to Java SDK bin dir in .bashrc.local (/cygdrive/c/Program Files/Java/…/bin) • Merge tmp.xml.1234 with xyzt_msgs.xml existing one + modify “eventid” • Generate c/h files with mknotifs.sh abcd.xml (generates abcd.c/abcd.h) • Merge abcd.c/h files into /logger/xyzt_msmgs.c/h files using Compare IT! • Add trap reference to mgmt_agent/models/db/log.yang and types/types-log.yang • Logger/ehs-events/xyzt_params.c|h are also adjusted • How to test: enable trace on changes: • configure.log.snmp-trap-group 97 trap-target pc address 138.203.22.243 snmpv2c notify-community common • config.log.log-id 97 from main to snmp • Add record to table • Call sbmPppoeNcpFailureTrap from CLI hook • Do SNMP get exact with key from trap • From kernel > jsh • logEvent_IGMP_vRtrIgmpHostInstantiationFail <parms>
How to add a SNMP Trap (4/4) • Add generic trap for table (ref vRtrIgmpGrpIfTable ,tmnxSubLcktPlcyTable) • logger/trapper_api.c
How to configure snmp-trap-group • configure log • snmp-trap-group 33 • description “pc-jo” • trap-target "pc-jo" address 138.203.22.243 snmpv2c notify-community “default” • snmp-trap-group 99 • description “pc-jo” • trap-target "pc-jo" address 138.203.22.243 snmpv2c notify-community “default” • log-id 99 • from main • to snmp • configure li log • log-id 33 • from li • to session (or snmp)
How to generate a patch • Modify sources as required • Generate patch info: • cvs –q diff –Nau >abc.patch • Implement a patch: • patch –i abc.patch • patch –p0 <abc.patch • Git way of work • git diff >abc.patch • git show -1 >abc.patch • patch –p1 –i abc.patch
LINUX PC tools (1/1) • Telnet to LINUX PC (138.203.17.67) • root/tigris, simonjo/tigris • Start RADIUS daemon • cd /root/bin/freeradius-1.1.5/scripts • radiusd –X –f • Start MPSIM • cd /root/bin/mpcsim-1.1 • ./mpcsim.sh • start webbrowser and goto http://<ip@-linux>:8080 • FTP to LINUX PC (138.203.17.67)
How to debug (1/1) • Enable debug in the required directories: • Copy prefs.mk into these directories • Content: BUILD_TYPE := int • Clean these directories • cd <dir> • make clean • Rebuild + reboot SIMx • Start -> Programs -> WindRiver -> Tornado • Tools.TargetServer.Configure: • Target Server Name: SIMx • Core File & Symbols: • File: d:\home\...\ws_x\panos\bin\7750-i386\both.st • Global Symbols • Memory Cache Size: 100.000Kb • Target Name/IP Address: 138.203.17.6x • Launch • Tools.Debugger… • Target: SIM3, OK
How to merge a DTS (1/1) • In order to merge a DTS to another release: • cd ws_70S/panos • dts –merge –nb 81453-000 • git dts merge <dts>-<branch> • This generates a list of commands to execute the merge: • Rebuild • Checkin • Unmerge • dts –rmerge –nb 12345-000 • make/cvsmerge.sh –j 1.curver –j 1.oldver agent/tmnx_abc.c
How to create/change/use a runtime feature flag (1/1) • How to change a runtime feature flag • At CLI console • kernel • jsh • runtime_feature_ipsec • runtime_feature_ipsec=0 • How to create a runtime feature flag • Add a line to common/timons_features.h • ./buildall.sh • How to use a runtime feature flag • Rapidcontrol • CLI funcs • Info handler • SNMP -> agent/nvhard.c • rapidlogic/rcc_cli_headers.h
Setting up TortoiseCVS on PC (1/1) • Download & install Tortoise CVS on PC • Create subdir for project, i.e. d:\sources\ws_i • Goto above dir & right click -> CVS Checkout… • protocol pserver • server cvspc.mv.usa.alcatel.com • repository folder /swdev/cvsrep • username simonjo • module panos • branch HEAD (or TiMOS_x_y_current, TiMOS_x_y_B1, …) • Press OK
Setting up a CVS workspace (1/1) • mkdir ws_x • cd ws_x • cvs –z9 co –r TiMOS_8_0_current panos • cvs –z9 co –r TiMOS_12_0_current panos • cvs –z9 co –r TiMOS_12_0_future panos • cvs –z9 co panos (for 0.0 current) • cd panos • ./buildall.sh –a i386 • Generate a list of branches • cvs status –v agent/nvhard.c | more
Testing Clear Commands (1/1) • Via SNMP: • Lookup applicable entry in tmnxClearTable (i.e. clearSvcIdPppoeSession), then • Edit record • Enter correct clear params in tmnxClearParams, i.e. svc-id=“3” sap=“1/1/7:1” interface=“” mac=“” session=“” ip-prefix=“1:2::0” port-id=“” inter-dest-id=“” no-padt=“false” type=“” • Set tmnxClearAction to ‘doAction’ • Commit record • Step 1: sia_tmnxClearEntryCheck will lookup an indirect callable function to validate params, i.e. PPPOE_validate_params • Step 2: sia_tmnxClearEntrySet will lookup an indirect callable function to execute params, i.e. PPPOE_clear_commands -> clearServicePppoeSession • Via CLI • CLI handler can validate params itself and then execute params, i.e. cliClearServiceIdPPPoESession -> clearServicePppoeSession • Located in: • logger/clear_sia.c • logger/clear.c • logger/clear.h
RapidControl (1/1) • Start RapidControl (-w to allow saving of changes) • Export group of items: • Select root item • Project.QuickNode(s)Create • Autocomplete classes for rollback • check TIMOS_CLASS_DEFINITION for that CL_xyz that is the root definition • i.e config router ospf3 <instance>
Local vs Buildpc (1/2) • Building local: • /prefs.mk must contain: • DIST_OLD=1 • DIST_FLAGS=-l • buildall.sh –d • Using buildpcx: • /prefs.mk must contain: • DIST=1 • /make/db_cfg: • only keep assigned buildpc out of comment (i.e. 138.203.10.3 anbuildpc3) • put other Antwerp buildpc’s in comment • monitor buildpc using webbrowser http://138.203.10.x:8080 • verify /db_usr_cfg to contain IP@ of buildpc
Local vs Buildpc (2/2) • Moving to another build PC: • adjust /db_my_servers to contain IP@ of build PC\ • remove /<ws>/panos/db_usr_cfg • start build, this will recreate db_usr_cfg and push <ws> to build PC • Monitor build PC • http://138.203.10.9:8080/ • Clearing buildserver workspace • ./make/distws.sh -c removews
Dot1Q Driver (1/1) • To report the status of the dot1Q driver; • shell dpsim • Mapping of ethernet ports on LINUX: • eth2 is right most, next to the left is eth3, eth4, … • Mapping of ethernet ports on SIM: • bottom port is P1, next up is P2, …
Runtime online debugging (1/1) • configure log log-id 96 • from debug-trace • to console • debug service id x pppoe packet mode egr_ing_and_drop • … • no debug • kernel jsh word debugOid=1
Misc (1/7) • Enable multiple PPPoE sessions • config service x subint y grpint z pppoe sap t session-limit 10 • Running graphical user environment on LINUX • logon to LINUX machine • start vnc server: vncserver& • on PPC run TightVNC • Running Wireshark on LINUX • logon to LINUX using TightVNC, root:tigris • run /usr/global/bin/wireshark • Clear params & commands • IGMP_validate_params, IGMP_clear_commands in logger/clear_sia.c • Indirect called functions in logger/clear.c
Misc (2/7) • Unmerge • dts –rmerge –nb 12345-000 • make/cvsmerge.sh –j 1.curver –j 1.oldver agent/tmnx_abc.c • LINUX machine • under / only root user allowed to create dirs • mkdir /abc • chown users /abc • /home and /users are protected for auto-mount • Multi-field SNMP commit • RCC_CMD_Snmp_Auto(pCliEnv); // disable auto-commit • if (OK > (s = RCC_RCB_WriteValueToRCB(pCliEnv, oidBuf, NULL, value))) • goto _exit_Abc • … • if (OK > (s = RCC_CMD_Snmp_Commit(pCliEnv))) • goto_exit_Abc • _exit_Abc: • RCC_CMD_Snmp_Auto(pCliEnv); // re-enable auto-commit
Misc (3/7) • platform/platform_types.c • contains overrides for runtime_feature flags • using sticky tags • remove file, i.e. rapidcontrol/Makefile • cvs update -r 1.59 rapidlogic/Makefile • cvs status rapidlogic/Makefile • remove sticky tag • cvs update -A rapidlogic/Makefile • cvs status rapidlogic/Makefile • mkcli –e • Copy files to Princess • in explorer open \\138.203.16.150\simonjo then copy files to it
Misc (4/7) • ptr-chk build • make clean • panos/prefs.mk take PTR_CHECK_... lines out of comment • ./buildall.sh • enable enhanced bootup logging • debug trace trace-point module CLI type USUAL_EVENT • shell traceLimitDisable • shell rollbackLog <file-url> • determining ISSU struct size for i386/HOPS • TGT_SYS=cpm TGT_HW=i386 make/dumpstruct.sh STRUCT_vRtrIfDHCP6Entry tip_appl/tip_red.c • TGT_SYS=cpm TGT_HW=hops make/dumpstruct.sh STRUCT_vRtrIfDHCP6Entry tip_appl/tip_red.c
Misc (5/7) • Add Eclipse External Tools Config • name mkeditable • main • location D:\bin\bash.exe • working dir ${container_loc} • arguments -c “echo ‘chmod +w ${resource_name}’ && chmod +w ${resource_name} “ • refresh • uncheck ‘refresh resources upon completion’ • build • uncheck ‘build before launch’ • common • save as local file • display in external tools • console enc default • stdin/stdout allocate console • launch in background
Misc (6/7) • cli_find.pl --command “configure service vprn isis$” • mk –-summary • generate new .ovr file • make/distws.sh -c agent/ti-mibs/tools/genovr.sh -mib agent/ti-mibs/TIMETRA-LOCAL-USER-DB-MIB.mib -source agent/sia_tmnx_local_user_db.h -nogenerate –create • make/distws.sh -get agent/ti-mibs/tmp,* • rollback issues • dependencies in cli/cli_dependency*.c • cliInfoIsInfo, cliInfoIsRollback, cliInfoIsAdminSave • shell: rollbacklog ftp://pc:12345678@138.203.22.243/./sim2/rollbacklog.txt • debug trace trace-point module CLI type USUAL-EVENT • tracing a function • shell tracePatchFn <function-name>
Misc (7/7) • Using testbeds for testing • use rtexpr000.pause to start testbuild on testbed and put it in pause • telnet <testbed-ip-addr>, user=<testbed-name>, pswd=“tigris” • tclsh • convergence_sr –numvprns 1 –numfilters 1 –numlpbcks 1 –numroutesv4 1 • docli Dut-B “show router isis routes detail” • Using andevvm19 as sim bed • ssh –l simonjo 138.203.10.240 (password tigris) • /users/bin/designtestbed/startPrivateTestbed.sh --configDir andevvmTest/config --topologyDir devEsm --testbed andevvm19 • wait till andevvm19 in pause • start telnet session via terminal server: telnet 192.102.219.3 2501 • use upload.sh on desktop pc to upload new images to andevvm19 (138.203.58.239) • Use testbed manager: http://138.203.58.239:8081/ to reboot dut’s
LINUX Dvpt (1/1) • size <app-name> • strace –o output.txt <app>
SR Software Structure (1/1) User (telnet, SSH) SNMP CLI MIB’s Agent (COAR lock) CPM sia_xyz_get/set/check Que AVL Tree Oper-sw ICC link IOM Filter DB L2/L3 IP traffic
Testing switchover and redundancy • Setup a redundant system (CPM-A/CPM-B/IOM-1/IOM-2) • Boot each CPM and verify stable status using ‘show card’ • Activate CLI on stby system: • s12->jsh • s12->startCliOnInactive • s12->show … • Change config on active system, verify on stby system • Switchover using ‘admin reboot active now’ • Verify config • Modify config on active system, verify on stby • Switchover • Verify config • Modify config on active system, verify on stby
Setting up SNMPv3 • configure log • snmp-trap-group “v3” trap-target “v3” address 138.203.22.243 snmpv3 notify-community “v3” security-level no-auth-no-privacy
Testing rollback • configure system rollback rollback-location ftp://*.*@138.203.22.243/./dutB/dutB • admin rollback save • …cmds • admin rollback compare • admin rollback revert latest-rb