`
`fingg _|'P.'m-:mDATe
`'
`~ -
`
`.
`
`_m.Em.
`.. ‘NUMBER
`
`5,
`._n:-H
`._-.
`}'.'ENLJ£-‘ul,.£.-.
`-'-in;
`I—:Mr.a'r-_'I__. NDR‘I'HI3cIf?r3IJnIi_.
`_ 4: FEI-‘«L11r_~'Jn'‘1HII
`
`
`Ht’-I-‘W_ EIFBE
`|-*9.
`:#:—.‘L‘JF'f.Il‘:¥.-.. hm:
`I3-Fiv'I[>_._H.
`THI:IMPE:I.1r-r,
`i’<}-'1‘-I=ar_‘-NL-,
`1-‘Sm;
`:3g;«‘.r.:[:-
`yJHITr-:7.‘ T‘r'I~lE‘.I=«nRmJI_'iH.
`rm.
`‘'
`‘‘_!_=h:n::N1''m1,I];nj1',-
`VEF{!F_IE[a
`.
`__“fiE__m_
`
`._
`:5
`
`'pm'm I us *3: s a: s can .1: t: :‘:-«'»3« an
`T'l1IE;
`.€IF'l-‘L.l-J
`IS A but DP
`DJHICH 1:;
`F1 811-" rr:-'
`-
`
`_
`,q}_:;M
`(:7,-"351 ’ ,>_:=_.-3: (:9; ; ,‘',.‘3',>1
`f_\f);‘:3E~!aI ,5-9.5‘ 13.1,! I2‘.-'91 arm
`
`w |'F'EIRE.’I-BEN FiF‘f-‘L 1-mt IDI‘-1S1—‘1-‘*H‘fi*f-1H 1,? '
`'~.'EF\'1F-‘1l~‘.D
`'
`
`'-
`
`;._.__..I,, _.
`
`.
`
`r
`
`
`
`,
`
`\
`_
`_
`[IF REEUIHHH. FDREIHH FILIHR LICENSE GRQNTEU naxzw/9$.44 SHHLL aNTIT{ #4
`» ‘
`'
`.
`ATTORNEY 3
`"ON-"IR
`tininted
`.y¢1 _
`no
`DOCKET NO.
`fifi USO 1 I9 m-'.d‘b‘am mat
`yu
`rm
`.-.\r‘M‘fi~ed arr! A_:h1-awlvspe-1‘
`5u¢,um_-._|—.3-_g,
`ERIC I.-~PRAHL
`F-"IF-H man HIE"-Hf-'\FIDSC‘N
`_. 225 Fr"F\NHLIN ’5TF‘EET
`éé mrmcuu hm op.-11n—2aoaa
`
`smson
`A3
`nuso °°"’""'
`-.-.5
`MA
`I
`
`
`
`users vow.
`moer.
`FILNGFEE
`Dfiwss. cums cwm necmao
`
`?
`$0 9.13:.‘
`38.
`L9
`
`
`'
`
`I‘.IzJ12-L‘Dif:Dr::2:
`'
`
`'-
`
`.=
`!
`I
`
`.
`
`PARTS OF APPLICATION
`FILED SEPARATEEY
`
`NOTICE or auownucs mu-'.e
`
`Amount Dun
`-c90€iaa
`
`
`I:-atel Pa’-d F3
`
`_,....»
`
`Assislanl Examéndr
`
`Alli Patel
`Prfrnaty _Exan3ir,ter .
`Primary Exer;1iner
`
`_ _.«‘DRAVi'lNG
`
`She-Efiwg. Fags.Drwq,,-
`/" .7 §/
`54”’,
`
`V
`
`-
`
`fem PTD-(ISA
`mu 6??!
`
`."\‘flT‘-EH E4&\\"I7§6(
`
`snag} sa.1____
`
`.
`
`(FACE)
`
`Petitioners' EX1009 Page 1
`
`
`
`;2.='::.:
`_
`1,,
`
`'‘--!F...'\ 1?‘ 1-‘_‘.:.\*
`
`.,-2.1.1. .
`
`I-
`
`suucmss
`
`I unobn Anvumr
`
`exnyuuzn
`
`-
`
`%:.».<aa'F< K
`1
`
`
`
`
`
`1
`
`F.onf1n nrlatiw c!-In-I
`- 3 .
`In :6-rvlllom ml
`
`
`
`ea.
`gfixlkls
`
`LLN3 FEE
`§'ac:1v.=.o
`
`.
`
`ATY0FINEY'$
`obcnerma.
`
`;a'-Ji’r,."’
`
`'
`
`u.n.s.o'n=§.1:j.c_»._ua.-pm.y;gorr‘.-»=fo4:u.1g«.xu~:II
`
`1
`
`’PAf-§_f& OF APPl.1CA'I’1ON
`HLPD SEFASATELY
`
`Home or ALLOWANCE wuuao
`
`paumneo roa ISSUE =
`'
`Annual E:umIM1‘
`Ooctu ct-ark
`
`'
`
`'
`
`'
`Tom mum
`
`owns ALLDWEEI
`
` ms‘Wu‘
`
`'
`
`ISSUE CLASSIFICATION
`&.-bclus
`
`WARNING: ‘nu lni-otmlllori dhcbud I-.m-In my be mu!-ma. Unlulholltld flsatwm my In
`prnlibfled my [ha Ulflttd Slllls (34:61 11110 35.5l¢"I:n! 121. IN trad GM
`ngpggunounsdg mg Lr.s. uumu &'l'udmn1r'k own in teats-clad Io nuihcihod 0-1930:“:
`Ind conlrnum only.
`
`Petitioners' EX1009 Page 2
`
`
`
`
`
`3:
`
`iE
`
`3§
`
`
`
` % ONTENT8
`
`. papers.
`
`.
`.._*_.__...___ 1.ApplIr:a!:'on .
`2_ L'_r'_ :r;5"Frz;-- IQ .'
`
`.3")
`
`*'
`APPROVED son LICEHEE
`
`'
`
`
`
`_11._'r
`
`%
`
`
`'
`I
`.
`"'*~,,;«:,.
`
`
`
`
`5.-4
`
`‘
`
`%H 1E.15.
`
`.'
`
`_._...._._...___..__'IB.
`
`1.?.___
`
`-15..’ If '1»; 1.:
`l
` .. / M fl
`. % 1 $17
`
`18.
`
`-
`
`_,__,,_19._'
`
`'
`
`»
`
`:.—._.—.20-__
`_21-__
`
`.
`
`,
`
`'
`
`.
`
`‘
`
`,
`
`.
`
`'
`
`'
`
`I
`
`.,,
`
`Petitioners' EX1009 Page 3
`
`
`
`
`
`.--xx.
`-.-
`
`'
`
`H.
`0% -.
`.
`.-2
`.____.‘.;_-2
`
`,-
`1 1 6
`
`1
`
`’
`
`-.
`
`’
`
`
`
`
`~ céNf?E$1Ts
`
`_‘
`
`Au
`
`
`£4.
` fr “"' 7*" I‘ H. -2
`,
`
`
`
`_
`3
`%
`7%;
`ax ,_ £12”...a
`.¢.
`5%
`9
`.
`q__
`.
`14,7432’: «L/I
`5:‘
`32%. ¢
`
`T, vain.
`
`'
`
`1
`
`'
`
`r
`H ,,
`W.
`9 ~
`/ r%
`-
`
`7-'1?-rfijfi L-
`-
`-
`‘L M’ 99-
`%s--§2QZ§
`
`K J '_
`'
`
`.
`
`5':
`
`H
`7 a‘:
`H
`1742;
`f
`
`,7: __a«2_uL;’____fmW-5 M
`.2i3:._......I_-°rm;9rav#fl§5L§wgfltslsa?_..(_. M42
`a,-2;? czéflgg
`29; /Pgkflwggsg
`
`O0
`
`?-:§:.:
`
`“
`
`#
`
`2 .
`6
`
`-
`
`(FHOND
`
`Petitioners' EX1009 Page 4
`
`
`
`Petitioners' EX1009 Page 5
`
`
`
`
`
`if-—-—
`fi
`HEr‘HuR1< Hum IORTHG
`Ferdifiagd Egel, Kegdall
`Rary
`u ertsun. D1916 H.
`Gerard Hhite
`
`. Jones.
`npsun find
`
`Petitioners' EX1009 Page 6
`
`
`
`NETEORK HDNITORING
`
`Ferdinand Engel. Kendall S. Jones,
`
`Katy Robertson, David M. Thompson and
`Gerald Rhine
`
`Petitioners' EX1009 Page 7
`
`
`
`
`
`rtp_dl1_p.c
`
`[description]
`
`Copyright
`
`(c) 1991 Concord Communications Inc.
`All rights reserved.
`
`Path:
`
`Date:
`
`/home/hawk4fmalibuftrakker_db/monitor/rtp/SCCS/s.rtp_d11_p.c
`
`8/26/91
`
`
`
`Revision:
`
`1-7
`
`Changes:
`
`HM-DD~!!
`
`WHO
`
`08-26-91
`08-02-91
`06-05-91
`05-05-91
`D5*31'9l
`
`KR
`DPD
`KHJ
`DPD
`KMJ
`
`Description of change. (latest first)
`
`moved llc parse so that if error, wou1dn‘t inc frames
`always do a get for the destination mac address
`changed check for min pkt size to > 13
`moved counts for collisionsferrors to chip counts
`forced vars into registers and mimumized global
`var E00833
`
`static char rtp_d11_p_c [] = “@(#)rtpmd11_p.c
`
`1.7" -a
`
`#include <stdio.h>
`
`fiinclude <cci_std.h>
`
`#include
`
`"system.h"
`
`
`
`Petitioners' EX1009 Page 8
`
`
`
`"add:ess.h"
`<sys/types.h>
`7Ksyfi[socket.h>
`cbsdda/sys/time.h>
`"uti1.h"
`"kuser.h"
`“fibuf.h"
`
`finglude
`iinclude
`.fih¢1fide
`iincihde
`finclfide
`finqlflde
`finclude
`fjfgéf unix.
`fiinclude <sys/cci.h>
`fefidif
`.
`iinéluge
`“1anuti1.h"
`finfilude
`"gpu.h"
`iinclude Ulané82596.h"
`fificlude
`"mtm”if.h”
`fincluqé
`"ntm;in.h"
`‘}igc}hde
`"mtm_if_ethér.h"
`fiholude"
`:"a1arms.h"
`#iné1ude* fisF3ts.h“
`_fihG1udc""$taLq;d11.h"
`.finp1pde
`"ém;ct;1.h"
`fificlflde
`“ttp.h“
`
`_
`./w .
`# MAC and LLC Headers and Data Structures
`i/:‘
`'
`3'Haqfiddress'
`mac_sr¢_addr;
`Hflacfiddreés
`mac_dst_addr;
`
`.
`.
`..
`"T
`'.[¥
`~;#-Frame defin;t1qns
`
`
`
`
`% lb?
`*HINDBTfl
`
`
`flflé lb?
`fHAXDATfij
`.
`....
`Lie pnrn
`Lfie HA
`
`‘
`
`45
`1500
`.
`15bd4a
`
`Petitioners' EX1009 Page 9
`
`
`
`
`
`fldefine HAX_LLC~LEHGTH
`
`1513 /* includes mac header and 4 byte FCS */
`
`_
`/*
`*.LLC frame masks
`*/
`iderine I_HASK
`.¥defi|_'1_e; U___I-IA_Bl{’
`fdefine PF_HfiSK
`#dgfine'IG;HASK
`fdefiine RESP;BIT
`
`0x01
`03:10
`'
`
`0x01
`
`Uxef
`oxfe
`
`/in
`# LLC frame command types with p/f w 0
`*/
`
`;
`
`
`
`/* infigrmation transfer 4.byte header #1
`}define.I:BRhHE'
`oxoo
`J Ii‘superyfsqfiy;qommands/responses=4 byte header */
`-fifiéfine RR;E3A¥E
`~ 0301'
`,#fiéf§né R3Q;FRRfiE
`0309
`.-:#déffifi'e.
`.'Bri'IR;rRAHE
`.oxo5
`M-/firuhnhmhérggI¢§mmanqs/response 3 byte header */
`_fi£d¢fing Ui;FgAME,;
`‘OX0:
`r“?§¢f1n§ aAaua;Pg¢Hz Oxéf
`_¥idefifi6 DI9c;§RaHE -0x43
`;#ciéfin.e"
`0x763
`:-'£a.=,-'x:;1n-e-
`
`Qxof - T~Ft=dé‘r;ih.e:%"
`
`TH‘-aglso
`Baum -0x23
`A [define T§$_
`:;.7fdéfifie xxplrhhnzf-.oxar /* response is additibna1‘3 bytes long a;
`
`“/F-iiaiin-iserlz .
`:*1E_«.I»C.,;%l1r;15¢1!1; -
`
`
`
`
`
`Petitioners' EX1009 Page 10
`
`
`
` '
`
`ir_c1;xd;__s1;a’t:us_,;mask
`Ai;-_cmcI_9k -
`1r_cmd_r5
`ir_cdq_ue
`‘it end ‘pa
`—ir:¢md:ip
`-1'.7:_'c,m_d;'un
`1i:___cmd___i_t'.
`-ir_-_:_:ap;':,31:atu£:r_ma|3}:
`.1'r__1_:sp_._ok
`irjtsp rs
`ir'_r$PZm.3‘
`_ir_r'$p‘_:_-)f1r-
`‘i'r_r.é',1i_ue
`-.ir_r.sp_=-ip -
`. ~ir_rsp;u;r-
`¥_'.;ip;rsp;it
`1:1
`
`-—- tor;
`= #00;
`= #01;
`= IDS;
`= #06;
`= #07,
`-= #09;
`# for‘;
`=- fro;
`= ton;
`r= no;
`= :30:
`-= #40;
`'= #50;
`= #70:
`Ta‘ 1'90:
`= #F0,
`
`_
`
` 3: 515i
`
`
`
`== #67,-
`LLc_1xco_.pdu
`= :27;
`LLC__‘A(‘-.‘1_-_pc’_4u<
`LLC___x'ic_1__1_$‘duH1ength = :03;
`_11QMxid;fdrmat;id
`a #81;
`11c_:_xid_'_type1
`'
`= #01;
`l1c_xid;fiYP$2
`E #02;
`l1c;x1d;fiype3
`= #04;
`1-1°;t0‘9919.}.1?it
`= #30;
`'].*].c_seq‘_pt‘_rnask'
`= §6F,-
`
`_ _f$.;
`:c1é_fi‘hii:_ions
`:_;-_*«.-I~I_ia_'._a€1i=.-'_':':..
`
`
`/5
`
`T"'iexi‘<i!‘-érstr {
`_ » I ,’a‘tir1L1r:=t:-_tn'z1'cM
` F§<.é‘M'~'1..r'.er-’».:°~
`' “Hat:
`dri;-._s_s:
`u
`
`dst adgilr-,'
`.5-rc:a'c_1dr;
`V
`5].ri.-_ngt._h,-
`
`f.*re‘st per 8.02.2/3 specsitf
`
`Petitioners' EX1009 Page 11
`
`
`
`
`
`15
`
`struct l1c_headefstr {
`u_char
`dsap:
`n_pha:
`asap;
`uéphat
`contrpl;
`u_phar
`11c_fiata[HAX_LLC_pATA];
`}:
`
`/* actual start of 11c data*/
`
`struct,snap_héader5tr {
`uwchar
`dsap;
`u_char
`ssap;
`u_char
`contrpl;
`u_char
`urq_cdde[3];
`u short
`ethgr_type;
`}?
`
`/* protpcol id OR origin code *1
`/* there may be a org code that *1
`/* specifices this fiE1d'to_be the EtherType *{
`
`struct d11_fra
`'
`stpuct
`Etruct
`upphar
`,}i
`
`mestr {
`maq_headapstr
`11u_h&aderstr
`fbs[4];
`'
`
`fdéfine HAC;HBhDER $123
`. #d‘e'g:' ihe , x.LcTr{j_a:§_:'m_rz3s1zt::
`#def1n¢.sNh§«LLc uagngnisxzs
`-‘ #.<Iie'.t_ihe-t 'sH_.APZIJTé¢ZH'E.ADERZDIFF
`' idggine NQVELD;flEADER;SIflE
`
`mac header;
`1lc:header;
`
`/irest per 802;2/3 specs*l
`{*302.2 specaif
`
`]fisizeof(mac_headerstr)*1
`-14
`]*sizepf(l1c_peaderstr)if
`-
`3
`ffsizeo£(snapFh¢adersbr)3/
`'
`B
`SNAP_LLC;HEADER_SIZE%LLC'HEADER_SIZE'
`2
`' {*NOVELL only Has 1 BSA? and DSAP*[
`
`*J
`‘$'Lobal—data
`‘i
`
`stphcturea
`
`'f|exێ;q.uint32
`.;5g;£ié Uintéz
`
`myrpfiddrj
`
`d11;1ength;
`
`
`
`Petitioners' EX1009 Page 12
`
`
`
`
`
`static U1nt32
`
`11c_pratcco1;
`
`static
`static
`static
`
`StatsAddrEntry
`statsnllsegment
`StatsProtcco1Entry
`
`*this#segFaddr_ptr;
`*this_seg_stats_ptr;
`*this_seg_protcco1_ptr;
`
`StatsAddrEntry
`static
`Statsnllsegment
`static
`static StatsPrctoco1Entry
`
`*erc_seg_addr_ptr;
`*src_seg_stats_ptr;
`*erc_seq_protaco1_ptr;
`
`static
`static
`static
`
`Statshddrfintry
`statsnllsegment
`statsProtoco1Bntry
`
`*dst_seg_addr_ptr;
`*dst_seg_stats_ptr;
`*dst_seg_prctoco1_ptr;
`
`static
`static
`static
`
`Statsnddrfintry
`statsbllnddr
`StntsProtcco1Entry
`
`static
`static
`static
`
`StatsAddrEntry
`Statsbllkddr
`statsProtoco1Entry
`
`*src_pode_addr_ptr;
`*src_noda_stats_ptr;
`*src_node_ptotaco1_ptr;
`
`kdst_node_sédr_ptr;
`*dst node_stats_ptr;
`idst:noda_protoc01_ptr;
`
`static $tatshddrEntry
`statsDia1ogEntry
`static
`
`*dia1D9‘___&ddr__ptr ;
`*dia1og_stats_ptr;
`
`* Hacros for D11 statistics
`defined in stats.h
`* These use the macros
`
`fidefine dll stats frames {'\
`stets_?rames—{DLL_SEGMENT,
`
`{define d11_stats_hytes { \
`3bats¥bftes (data_1ength,
`
`IJLL_NODE, DLL_PAIR, DLL__PRDTOCOL)} }
`
`DLL_sscHsN1-, DLL_iTODE, DLL__P1uR, DLL_PRoTocoL);
`
`}
`
`
`
`Petitioners' EX1009 Page 13
`
`
`
`
`
`\
`ifdcfine d].lW5tats___errors {
`$tatS___er'r0rs (oI.L__sE:GMauT, DLL__NODE, DLL__PAIR, DLL_PROTOCOL);
`
`\
`#define dli atatsflbcasts {
`stat.-:.__Bcasts (DLL_sEGr«1Bm:, DLL_NODE, nLL_p.n1n, DLLWPROTOCOL);
`
`\
`fidefine d1l_stats_mcasts {
`-atats_mcasts (_DLL_sEGMENT, DLL_NOI)E, DLI._PAIn, DLLMPROTOCOL);
`
`\
`{
`fidefine d11mstat5_enat
`statsfienet
`(DLL__SEGMEN'1‘, DLL_N
`
`ODE, DLLWPAIR, DLL__1=RoTocoL);
`
`)
`
`1
`
`}
`
`}
`
`#define d11_statsfi1lc { \
`stats_11u (DLL__SEGMENT, DLL_NO
`
`\
`fidefine d11Hstats_protoco1 {
`stats_protoco1 (DLL#SEGHENT, D
`
`\
`#dofine dll stat$_Qff sags {
`stats_off_5cgs (BLL_sEsumrr, D
`
`\
`fidefine d1l_5tqts_transit5 {
`stats_transits {DLLHSEGMENT, D
`
`\
`fidefine d11_stats“co11isions I
`stats_po111sions {DLL_SEGHENT,
`
`DB,
`
`|JLL__PAIR, DLLAEPROTOCOL};
`
`}
`
`LL_NODE, DLLHPAIR, DLLMPROTOCOL);
`
`LL-_NODE, DLL___PhIR, oLL__m2oToco1.'),-
`
`LL_NODB, DLLHPAIR, DLL_PRoTocoL),-
`
`}
`
`}
`
`}
`
`DLL-_H,0DI.‘, DLL_PAIR, DLI.-mPRO‘I'0COL);
`
`}
`
`\
`fideflne dll stats_a1ighment {
`stats_§lignment
`(DLL_5EGMENT, DLL_NODE, DLL_PAIR, DLL_PRbTOCQL);
`
`}
`
`\
`fdefine dll statsmrunts {
`stats_runts (DLL_SEGMEHT, DLIL
`
`NODE, DLL_PAIR, DLL_PROTOCOL);
`
`}
`
`/atikfitfiwk***ifi***i**fi*k***iiiitiik
`
`ii-In-{rt-klhkfl-A\1uI-!d:'I':i:|\'ir'lI-kiittkiii¢*in|'***'lilfi****
`
`
`
`Petitioners' EX1009 Page 14
`
`
`
` Data Link Layer Parse Routine
`.'l-3‘.-!1-H‘!.|-‘.I-I-
`
`Function
`
`Input
`Output
`
`
`Parse data link layer frame
`
`length of frame
`pointer to the frame,
`objects updated, next layer parse routine called
`
`Uint32 rtp_dllHparse (layer_ptr, data_length)
`char
`Uint32
`
`*1ayer_ptr;
`data_length;
`
`register
`register
`register
`register
`
`Uint32
`Uint32
`struct dllfiframestr
`Uint16
`
`adjusted_data_1ength, 1, result;
`protocol; *uint32_ptr;
`tr;
`*frame_p
`j=0XFFFF;
`
`struct ether_arp
`register
`short
`*wp1. *wp2:
`register
`dst ip
`_ _addr;
`struat inmaddr
`register
`struct mbuf
`*mbuf_ptr;
`register
`alarm data can not be put in register so added *uint32_ptr */
`/* stats
`stats_a1arm_data;
`Alarmuserbata
`
`flea;
`
`a set up local variables
`
`result = GOOD:
`
`freme_ptr m (struct dll_framestr *)layer_ptr;
`
`macw5rc_addr
`mac_dstHeddr
`
`= frame_ptr—>mac_header.3rc_addr;
`frame_ptr->mac_peader.dst_addr;
`
`
`
`Petitioners' EX1009 Page 15
`
`
`
` * Test for the broadcast address
`*1
`1 = 0;
`while {i<(sizeof(struct etheruaddr)/2))
`
`
`
`{ j
`
`E= frame_ptr~>mao_header.dst_addr.douh1o_byte5[i];
`i++;
`)
`rtp_broadcaat = (j == 0xFFFF);
`
`/-k
`* Test for a multicast address
`*1
`if (rtp__broadcast: == FALSE)
`if (frame_ptr->mac_header.dst_addr.bytes{O} & 0301}
`rtp_mu1ticast = TRUE;
`
`1* this test prevents all src & dst error counts if arc and or protocol is unknown */
`if (datawlength > 13)
`
`
`
`{E rtpumultioast) )
`(Emonctrl.hcastflodefinable) && (rtp broadcast
`d11_src_node_addr_ptr = src_node_a§dr_ptr = stat5_d11_lookup_addr
`(&nac_src_addr);
`else
`d11_§rc_node_addr_ptr = src_node_addr_ptr = stats_d11flqet_addr (&mac_src_addr);
`
`{i
`
`f (
`
`if (d11_src_node_addr_ptr)
`
`{d
`
`ll src hode_stats_ptr = src_node_stats_ptr = (statsnllhddr *)
`src node_nddr:ptr:>stats_ptr;
`'
`d11_src_seg_addrHptr'm src_aog_addrhptr = stats_d11_qet_segnent
`(srcmnodefiaddr_ptr—>addrass.segnentl);
`'
`if (src_5eg_addr_ptr 1= NULL)
`
`Petitioners' EX1009 Page 16
`
`
`
`
`
`d1l_src"seg_stats_ptr 2 src_seg_statsmptr
`src_seg_addr_ptr~>stats_ptr;
`else
`
`H
`
`tstatsnllsegment *)
`
`10
`
`d1l”srcHsegHstats_ptr G src_5eg_5tatsmptr = NULL;
`
`}
`
`else
`
`{ d
`
`ll src nodeMStats_ptr = sro node statsmptr = NULL;
`dl1:5rc:5eg_addr_ptr = src_sEg_ad§r_ptr
`a NULL;
`dl1#src_seg_stats_ptr " 5rc_seq_stats_ptr
`= NULL;
`}
`
`[R
`
`if (
`
`)
`(EmonCtrl.bcastNodeEnable) && (rtp_broadcast {I rtp_mu1tiGast)
`d11_dst_node“addr_ptr = dst_node_addr”ptr = stats_d11_1ookup_addr
`(&mac_dsthaddr);
`else
`
`d1lHdst_node_addr_ptr = dst_nDde_addrmptr = statsHdllFgetHaddr (&mac_dstmaddr);
`
`I
`
`f*** always do a get on the destination node ***f
`d1l4dst_node_addrHptr = dst_node‘addt_ptr = stats_d11_get_addr (&mac“dst_addr);
`
`
`
`if (dl1_dst_nodewaddr_ptr)
`
`{ d
`
`ll dst node 5tats_ptr = dst_node_statsfiptr
`dst node addr_ptr+>stats_ptr;
`”
`" dl1_dstmseg_addr_ptr = dst_seg_addr_ptr = stats_dll_get_segment
`(dst nodehfiddr_ptr->address.seqmentl);
`_
`if (d5§_seg“addr_ptr 3= NULL)
`d11_dst_segmstats_ptr u dsthsegwstatsnptr = (StatsD11Segment *)
`dst_seg_addr_ptr~>stats_ptr;
`else
`
`(StatsD11Addr *)
`
`dll_dst%5eg_5tat3_ptr m dstM§eq_stats_ptr u HULL;
`
`else
`
`}
`
`{
`
`
`
`Petitioners' EX1009 Page 17
`
`
`
`
`
`dll dst node:5tat5_ptr = dst_node_statsMptr = NULL;
`= NULL;
`I]
`dat"§eg_addr_ptr
`dll:dst:éeg_Eddr_ptr =
`= NULL;
`dst_seg;stats_ptr
`dll;dst;$egHst&ts_ptr
`}
`
`II-
`
`* Don't allocate-a dialog structure for a broadcast or multicast
`it
`
`if (
`
`else
`
`11
`
`)
`
`(statsnialogfintry *)
`
`(lmonctrlgbcastnialogfinable) && (rtp_broadcast E; rtpfimulticast)
`tr =
`tr :.dia1og'addr;p
`dll dialog addr_p
`“ atats:d11+1ookup_dla1ogfi(&mac_srcHaddr, &mac_dst_addr);
`dll.dialog addr ptr = dialog fiddr_ptr =
`" stats:d11_§et_d1a1og (&EacHsrc_addr, &mac”dst_addr);
`if (dialog addr;ptr 1= NULL )
`-dll dIQlogHstats_ptr = dialog_stats”ptr =
`d1a1og_addr_pEr~>stats_ptr;
`else
`
`d11_dialog_statsHptr =
`
`dialaq;stats_ptr = NULL;
`
`1
`
`else
`
`
`
`= NULL;
`thi5_seg~addr;ptr
`= NULL;
`src_seg_addrHptr
`= NULL:
`dst_s¢q;addr;ptr
`= NULL;
`this;seg;stats;ptr
`= HULL;'
`-érg;ség_Etats;ptr
`: NULL;
`dsh_B¢ggstats4ptr_
`%'thig ség;prptoco1 pt? #‘uuLL;
`‘Nagy;
`src_-5ei<§;I=E<5’&<?’=i°.1__'1:=tr
`NULL:
`dst sé§;pro§bé91;ptr
`TNULL:
`src'nodeJ5tats;ptr
`= NULL;
`"flat-n dg:statsfiptr
`= s:c.hd§§;pt¢toco1;ptr = HULL;
`w d$t7hoaé:prdtoccl;pt£ é HULL}
`= NULL;'
`qla1og;éEats;ptt
`
`HNEH
`
`11
`
`{ ‘
`d11;this;s¢g_addr“ptr
`fi11_$rc_se§;@dd§_P§¥
`fi11_d3p;sEq;afldr;ptr .
`Adll_thi§"se§}s§ats;ptr
`1
`#11 sr9;s%9;sta§$;Ptr
`d;1 dsh4seg;§tats;ptr-
`61.1‘ t!.1.i.‘s‘l‘*'=1:é§:_1=s.-=atot9<>l1,.r’tr
`_d11;s;c;ggg;px¢to¢p1Hpt:*
`dl1'ds£;seg;prqt9cQ1;ptr
`
`
`H
`
`flliflH
`
`0flilfl
`
`
`
`Petitioners' EX1009 Page 18
`
`
`
`12
`
`if (this seg_addr ptr = stats dll get_segment (mySegmehtId))
`d11:this__seg:stats___ptr = 1':n1E:_seggst.atsJatr = {staitsnllsegment *3
`this_seg_addr_ptr—>stats_ptr;
`else
`
`dll_this_segHstats“ptr w this_5eg_5tatsHptr = NULL;
`
`/*
`n the address records and set the 10 second sample
`i Update age timers i
`* rate so that the event manager will calculate rates on the statistics.
`*/
`stats_update_age“timors;
`statsusetHrate_105;
`
`fi
`* handle BAD frame statistics
`it
`I
`mbuf_ptr = dtom(frame“ptr);
`if (mbuf_ptr~>rov_status)
`
`{1
`
`* receive frame errors detected if
`if (mbuf_ptr->rcv;status & RS_COLLI5ION)
`}* collision error detecte
`d - do not parse or send to HTHfiRCV if
`/* THESE ARE NOW COUNTED BY THE CHIP
`d11 stats_po11isions;
`d11:stat5_err0rs;
`
`*-I
`
`goto macwbad;
`}
`(RS_CRC_ERR + RS_ALIN_ERR)}
`else if (mbuf_ptr->rcv_status E
`acted ~ do not parse or send to HTH_RCV */
`fii CRC and or allignmont error det
`d11“stats_p1ignment;
`d11_stats_errors;
`goto mac_hnd;
`}
`
`
`
`Petitioners' EX1009 Page 19
`
`
`
`
`
`13
`
`* i
`
`n*1
`
`.-
`
`Ii
`*else if (mbufmptr—>rcv_status a Rs_cRC_ERR}
`{
`* CRC error detected ~ do not parse or send to nTM_RCv t
`d11_stats_crc;
`dl1_statsMerror5;
`goto macmbad;
`
`*i
`
`} i
`
`f (mhufHptr->rcvMstatus E RS_SHORTHERR)
`
`I d
`
`/* runt frame detected — do not parse or send to HTM_RCv if
`11_stats_runts;
`d11_stats_errors;
`goto maeflhad;
`}
`I* end if *1
`/* end if if
`
`n *
`
`2
`else
`
`'* Determine if the frame is for this station
`
`i——)
`i==o;
`for (i=sizeof{struct ether addr);
`tr~>mac_he§der.dst_addr.bytes{iM1] == ts_addr.ether_addr_octat[i~1])
`if (frame_p
`
`{ r
`
`} { r
`
`tp“for_this_station = YES;
`
`else
`
`tpmfor_this_station = N0;
`break;
`}
`
`* Determine if the frame is from another monitor
`
`if (src;node*3tats”ptr is NULL)
`{
`
`
`
`Petitioners' EX1009 Page 20
`
`
`
`if ((rtp_for_this_statio == N0} && (srcWnode_addrMptr—>flags & HibMon1tor))
`rtp_from_anothermnonitor = YES;
`.
`
`}
`
`14
`
`[1
`* Check for etharnet or 802.3/302.2. Parse 302.2 if necessary.
`* Set the protocol type based on the ethernet type or the dsap.
`*/
`d11_1ength = HAC_flEADER_SIZE;
`adjusted_datah)ength = data_1ength — MAC_HBADER_SIZB:
`
`frame_ptr->mac_haader.length = ntohs(frameflptr->mac_header.length);
`
`if (
`
`(ftame_ptr—>mad_peader.length >= HAXDATh)
`:
`((frame_ptre>maq_header.length == XEROXHPUP)
`&& (adjusted_dataH1ength != XEROx_PUP)
`}
`}
`((frame_ptr—>mac_header.length == PUP_ADDR_TRANS)
`&& (adjusted_fiata_1ength != PUP_ADDR_TRAHS)))
`
`{ /
`
`* ethernet frame if
`dllwstatsmanet;
`protocol a frame_ptr—>mac"header.1ength:
`}
`
`else /* 802.2 frame *1
`
`( i
`
`f (frame_ptr—>mac_header.length < 3)
`
`d11_statsmerrors;
`goto mac_bad;
`1
`
`if (frame_ptr—>mac*header.length < HIHDATA )
`adjusted_data_1ength = frame_ptr~>maq_header.1ength;
`
`d11_atatg_11c;
`
`
`
`Petitioners' EX1009 Page 21
`
`
`
`i i
`
`
`
`resuit u rtpH11c_parse (frame_ptr, adjusted_data_1ength);
`protocol m 1lq_protoco1;
`}
`
`15
`
`*1-
`
`/*.* Do some statlstlcs
`a]
`'
`d11_stats_f:amqs;
`dll-stats_bytes;
`d11:états_oEE;segs;
`d11;stats_transits;
`
`if K(r_t:p__bro_a'c1cast == TRUE)
`
`=
`{
`d11_stats;bCasts;
`}
`
`/* if this frame is truncated this count will be wrong if
`
`if (rtp_m_u1ticaé.t: =2 TRUE)
`{
`_
`d11_stats_mcasts;
`}
`
`=.
`.
`.
`.
`..
`.
`1*
`# Find $tat1st1cs structure for the protocol dlstributlon stat15t1cs
`-'F/
`.
`. if (src;node_stats_ptr != NULL)
`‘d11_5rc;poqq_p;otqcq1_ptr = s:c_node_protoco1_ptr = stats_get_protoco1
`.(gg:g;hodefistats_ptrh2proEoco1Q,protoco1);
`II
`1”‘_.*g1se.
`‘inf’;-(dé;1'; -:n,ode_S1;.a_1_'.s_.ptr‘ s= NULL)
`:_3Vd1Iodst;fipfie_p:dt9po1;ptr = dst_nod¢_protoco1_ptr = stat5;get;protoc0l
`"§q5"fidH§_stats;ptr—)p:otocolq,protocol);_
`-
`.
`.= lsé 7,
`_
`T
`'
`-
`'
`'
`'
`. 9._-_d1l_d6t;nodg4pjotgco1;ptr ='dst_nodé;protoco1_ptr = NULL;
`
`d11_src;node_protoco1_ptr m src_node_protoco1_ptr
`
`NULL;
`
`
`
`Petitioners' EX1009 Page 22
`
`
`
` if (this_seg_stats_ptr lu NULL)
`
`
`
`stats_get_protoco1
`
`II
`
`611_this_seg_protqqo1_ptr = this_seg;protoc01_ptr
`_
`{Qth1s_5ag“stats_ptr—>ptdtoco1Q,protocol);
`else
`'
`dl1_thi$_seg_protoco1_ptr K thisHseg_protoco1“ptr : NULL;
`13
`
`
`
`stats_a1arm_data.1ength = 4:
`7* _
`.
`*‘rep1acefi_thi5
`*=bg¢py (aprotocol, stats;a1arm_data.data, 4);
`#-with‘
`~
`.
`.fi/
`uint32;ptr ='EntatsWa1arm_data.length;
`"(iii-_r_1t.3'2_-ptri+_+;_
`gu;nt32_p;;,= protocol;
`
`”Sfidt5;ppotdco1;
`
`if (src_5eggstats;ptr l= HULL)
`dll arc seg_protocb1_ptr = src_5egHprotoco1hptr
`(&$rc_aeg_stEt5#ptr—>protoco1Q,protocb1);
`‘
`else
`d11;src_seg_protoco1_ptr = §rc_segMprotoco1fiptr
`
`_
`if (dat_seg_stats_pt: ;= NULL)
`'
`d11_dst_52gmprotoco1;ptr = dst_seg,protoco1_ptr
`(&dst_seg;5tats_ptr—>protoco1Q,protoco1T;
`else
`_
`d11_fist_5gg_protoco1_ptr 5 dst_seg_protoco1_ptr
`
`II
`
`II
`
`stats_get_protoco1
`
`NULL;
`
`statsflget_protoco1
`
`NULL;
`
`i
`
`'* Keep pr§tuco1.diatribution statistics.
`*-Piss the protbcol as alarm data in case an alarm occurs
`.‘*/
`
`2
`
`‘
`
`Petitioners' EX1009 Page 23
`
`
`
`
`
`* Parse next protocol
`
`_17
`
`switch (protocol)
`
`( c
`
`ase DDD_IP:
`if (result =n GOOD)
`result = rtp_ip_parse {layer_ptr + dll_1cngth, datafilength - dllwlength);
`
`break;
`
`case ARP:
`if (result == GOOD)
`
`{ e
`
`a = (struct cther_arp *)(1ayer_ptr + dllmlength);
`ALIGN_LONG(ea~>arp_tpa[0],dst_lp_addr.s_addr);
`if (dst_ip_addr.s_addr == myIpAddr)
`rtp_for“thismstation = TRUE;
`
`}
`break;
`
`default:
`break;
`
`}
`
`.
`.
`.
`.
`a Determlne 1E th1s frame 15 truncated
`
`if {nbuf_ptr~>rcv_status &
`
`(nS_RES_ERR + RS_TRUNCATBD))
`
`{ 1
`
`* truncated frame - can be parsed but should not be sent to HTH_Rcv if
`rtp for this_5tation = rtp”from_another_ponitor = N0;
`/*'Tncrement segment count? *1
`}
`
`return (result);
`
`mac;bad:
`
`
`
`Petitioners' EX1009 Page 24
`
`
`
`
`
`=
`.
`'
`/* __
`* Determine if this frame is truncated
`*/
`if (mbu_E_ptr'-5-rcv_status .9.
`{
`.
`‘
`.
`/* trunbsted frame - can be parsed but should not be sent to HTK_RCV */
`rtQ_£Gr_this_station = rtp_from;another_monitor H No;
`/* increment segment count? */
`
`}
`
`. I_**_*_*'**************'*********fi*********“*****‘I*tfi**t**‘I"I'******I'**********'I**
`
`_*
`l
`"*
`
`.
`
`LLC-Parse-Routine
`
`Function Parse 802.2 frame
`
`Ifiput
`k
`.*. Qutput
`+:/
`r
`
`pointer to the frame,
`objects updated
`
`length of fréme
`
`- _*tJ'int32_ :rtp_‘-11c'_:;aa;sé (frame_Ptr. data_1-ength)
`
`4
`
`_struct
`Iuinfijz
`
`;d11;frqmestr
`
`*£rame;ptr;
`data;1ength;
`
`'
`
`*snsp_ptr;
`t¥P$7
`“IF.-'=AlP_'33'-‘CF
`isap;dst;
`*sa§_pair;
`
`
`
`M18
`
`(RS___RES__ERR + RS__TRU'NCA'I'E-DJ)
`
`}r
`
`eturn (BAD);
`
`Petitioners' EX1009 Page 25
`
`
`
`
`
`It
`
`
`is Get ‘protocol type
`
`*I
`_11c+proto¢o1 3 frame_ptr—>11q_header.asap a IG_MAsK;
`
`II
`
`i
`
`/iclear command/raspon5e-bit*/
`
`
`
`dl1_1ength += LLC_HEADBR_sIZE;
`
`switch (I1c_ptotoCo1)
`{
`.
`case LLQ_HULL_LSAP:
`break;
`
`/* case LLq;GLoBAL: not supported if testing asap */
`
`casé LLq_HGT:
` break;
`
`/* dase LLC;GROUP_HGT: not supported if testing ssap i/
`
`case LLq;SHAfiPATH_CONTRoL:
`break;
`
`,
`
`_
`
`M
`
`M case LLc;non_IP:
`' break;
`
`-
`
`case LLC_BsTAP:
`'"* bgeaki
`?:fiLQ_§fifiHAY;NETHGT:
`b..r_«a-auc;
`-
` -cfis§; :
`
`.-«.=ei:*=j_a.,
`
`
`
`Petitioners' EX1009 Page 26
`
`
`
`
`_case LLC_EIA_RS511:
`break;
`7
`case LLC PROWAY:
`
`bre§k;
`
`_
`case LL¢;SHAP:
`snap;ptr = (struqt snap headerstr *) &frame_ptr~>11c_header;
`IIc_ptotoco1 = snap_ptr:>etherHtypa;
`d_1_1_.1engt11 +u SNiLP__LLC_H.EADER__DIFF‘;
`bréak;
`
`E
`
`i9
`
`
`
`case-LLc_ISO:
`break:
`
`defau1t:
`gdto 11c_pad;
`
`'
`.I*
`3 Ggt frame_type
`.*I
`‘
`E
`' ‘if (1_=;_,~a;ne_.fa_t-,_§—:>~‘1‘1c heac1_e}:.contz:o1 5 1 MASK) H To is Informatioh frame a/ _
`,/i 5gpé§fii§of§'orAUnnumbergd frgE§,‘¢1ear pf bit *I
`'—typé2é3frfine;ptr—$1lcfiheader.contro1 & PP;HASK;
`snatch .<tv_.tsé>%
`{
`"case I4FRHHE=
`fif‘{I1d;protogQ1.E= LLG;SNAP}
`4
`d11;1ength++;
`J
`bf
`
`=
`_
`» ~ca¢¢_i-;ég_\ngr__1:_-;T
`‘
`5 if-(
`_fi:otOco1 != LLC”SHAP)
`
`
`
`
`Petitioners' EX1009 Page 27
`
`
`
`
`
`21
`
`d11_length++;
`break;
`
`case REJ FRAME:
`
`if T11c_protoco1 E= LLC_SNAP)
`d1l_length++;
`break;
`
`case RNR_FRAHE:
`if (1lc_protoco1 E= LLC_SHAP)
`dl1_1ength++;
`break;
`
`/* unnumbered commands/response 3 byte header */
`case UI_FRAHE:
`break;
`
`case SABHEMFRAHE:
`break;
`
`Base DISq_FRAHE:
`break;
`
`case Uh_FRAHE:
`break;
`
`case DMHFRAHE:
`break;
`
`/* has a additional 5 byte inf°rmati°“ field */
`case FRHR_FRnHE:
`/I IHPORTANT FRAME TYPE FOR SEEING PROBLEMS DO SOHETHIHG WITH THE 5 BYTES */
`if (1lc_protoco1 l= LLC_3NAP)
`d1l_1ehgth += 5;
`goto 11c_done;
`
`/* also unnumbered i/
`case TEsT_ERAME:
`
`
`
`Petitioners' EX1009 Page 28
`
`
`
` goto l1c_dona;
`
`goto l1cHdone;
`
`}
`
`11c_qood:
`return (GOOD);
`
`llcmdone:
`return (DONE);
`
`
`
`ffi response is additional 3 bytes long *1
`.Case xID_FRAHB:
`if (frame_ptr—>11c_header.asap a RE5P_BIT)
`/* as (11c_protoco1 != LLC"SHAP) */
`d1l_1ength += 3;
`goto 11c_done;
`default:
`
`11c bad:
`return (BAD);
`
`
`
`Petitioners' EX1009 Page 29
`
`
`
`rtp_icmp_p.c
`
`fdescriptiqnj
`
`Copyright
`
`(c) 1991 Cpncord Communications Inc.
`All rights reserved.
`
`Path:
`
`Date:
`
`/home/hawk4/malibu{trakker_db/manitorfrtpfsecs]5.rtp;icmp_p.c
`
`8/26/91
`
`i !
`
`._______-_..................,...a«....4.....................-..............,........__..a_‘_--
`Description of change. (latest first)
`
`stopped parsp_of middle or Last fragment
`Fixed icmp off segment bug,
`tfime qxppedad,
`Addéd-error counting to deét-unreagh,
`'
`9aram—proh1emi and paran'problem dption macros
`
`Revision:
`
`1.5
`
`Changes:
`
`-KR
`- O6-:2‘2.—9,1
`u6e2o4s1_ DPD
`0s—12~91 [KR
`
`‘_:'_.:Ii"=-|-..l-'I.-‘|I-";-l-I»IF!|Fll-)FIl-5l-ll-3Il-I-I(-Il-Il-II-II-$1-"I-:(-:|-‘I;
`
`Fixedudpptrintosourcequenchqata
`
`
`
` s_L-atic .cha_r."I:tp;_.i<2ElP_P_° [3 = "€'(#)rtp_icmp__p-G
`.t#ihc1udé_é$tdi9.h>
`”'ihcin§gt59ét_5td.h>
`
`1-5";
`
`
`
`Petitioners' EX1009 Page 30
`
`
`
`
`
`
`
`24
`
`fiinclude <bsd43/sys/time.h>
`finclude "uti1.h"
`fiinclude "kuser.h”
`finclude "protoco1s.h“
`iinclude "stats.h"
`finclude "stat5_icmp.h"
`flinclude "rtp.h"
`fiinclude “rtp_ip.h”
`fiinclude Urtpmudp.h"
`finclude "rtp_icmp.h"
`
`* Local Data Structures
`
`StntsAddrEntry
`Statslcmpsegment
`StntaProtocolEntry
`
`*this_seg_addrMptr;
`*this_seg_stats_ptr;
`*this_segHprot6co1_ptr;
`
`5tatsAddrEntry
`statsIcmpSegment
`Statshddrfintry
`Statslcmpsegment
`
`*src_seg_addr_ptr;
`*srcWseg_statsHptr;
`
`*dst_seg_addr_ptr;
`*dst_5eg_5tat3_ptr;
`
`StateAddrEntry
`StatsIcmpAddr
`
`*srcmnode_addrhptr;
`*src_nodeHstats_ptr;
`
`StatsAc1d1:Entry
`Statslcmphddr
`
`*dst_node_addr_ptr;
`*dstMnode_statsuptr;
`
`Stat5AddrEnt:y
`Statsnialogzntry
`
`*dia1og_addr_ptr;
`*d1alog_stats_ptr;
`
`
`
`Petitioners' EX1009 Page 31
`
`
`
`
`
`\
`{
`define icmnflstats_unreach net
`ICHP_SEGHEHT, AL;UHREACH_HET, NULL); \
`stats_for_segs
`(destfihrflet, destunrfietflate,
`statsHfor_rcv;node {rcvDestUnrNet, rcvbestuhrfletkate,
`ICHP_fl0DE,=hL_RCV_UNREACH_NET,
`NULL);\
`
`_
`idefiné icmp_stats_echo_reply {\
`ICHP SEGMENT, AL ECHO REPLY, NULL); \
`stats for_segs
`(echokeply, echoneplykate,
`stats:fdr_rcv;pode (rcvachoneply, rcvachoneplynatéf IcHP_noDE,“aL_REv_£cHQ_nEpLu, NULL);
`
`5tatg“fp:_xmt_node (xmtBchoReply, xmtfichoncplynate,
`
`IcHP_NODE, AILfiHT_ECHQ_REPLY, NULL);
`
`f
`5
`%
`
`* Macros for ICHP statistics
`* These use the macros defined in atnts.h
`
`fldefine 1cmp_statsfiframes { \
`5tats_frames (ICHP_SEGHENT,
`
`rcMP_NonE,
`
`ICHP_PAIR,
`
`ICH_PRQTDCOL);
`
`}
`
`\
`{define iump;stat5_bytes {
`stats_bytes (length,
`ICHP_SEGHEHT,
`
`ICMP_HODE,
`
`ICH+PAIR,
`
`ICMPHPROTOCOL):
`
`}
`
`\
`§define icmp_statsmerrors {
`stats_errOrS (ICHPMSEGMEHT,
`
`IcHP_HoDE,
`
`ICHPMPAIR,
`
`IcHP_PRoTocoL);
`
`}
`
`\
`{define icmp_stats_pff_seqs {
`stats_off_seg5 (ICHP_SEGMEHT,
`
`ICHP_NODE,
`
`ICH?_PAIR,
`
`ICMPMPROTOCOL);
`
`\
`fdeflhe icmp_atatsmtranaits {
`stats_transits (ICHP_SEGHENT,
`
`I(1HP__,HODE,
`
`ICHP__PAIR,
`
`ICHP_PRO_TOCOL);
`
`}
`
`}
`
`Petitioners' EX1009 Page 32
`
`
`
`
`
`stuts_forHxmt_node (xmtnestunrflet, xmtDestUnrHetRate,
`mJL_L) ;
`}
`
`ICHP_HODE, AL_XHT_UflREACH_H£T,
`
`Fdafine icmp_stats unreach_host
`{
`\
`ICHRHSEGHENT, AL_UNRBACH_HOST,HULL); \
`stat5_for"seqS _
`(destunruost, destUnrHostRate,
`stats for_rcv_node {:cvDestUnrHost, rcvDestUnrHastRate,
`IcMP_:to’fiE, AL_Rcv_uHnEAcI'I__1Ios'r, HULL) ; \
`stats for xmt node (xmtnestunrflost, xmtDestUnrHQstRate,
`nL_xm-_t”nmEic1{jiosT,nuLL);
`}
`
`ICMP_NODE,
`
`26
`
`\
`{
`fidefine icmp_stats_unreach_protocol
`\
`stats_for#sags
`(destUnrProtoco1, destUnrProtocolRate,
`ICHP asenmr, AL_u1IRP.1-mu PROTOCOL, NULL);
`stats_for_rcv_node (rcvDestUfiFProtuco1, rcvDestUn?Protoco1Rate, \
`ICTIP NUDE, AL HCV UNREACH PROTOCOL, NULL);
`stats_forMxmt“node (xmtDe5tUn?Protoco1T xmEDestUnrFrotoco1Rate,
`\
`ICHP___NODE,. AL_XI-1T__UNREACH__PROTOCOL, HULL):
`
`\
`
`\
`
`}
`
`fidefine 1cmpAstat5_unrcachHport
`{
`\
`ICHP_SEGHENT, AL_UHREACH_FORT, NULL);
`stats_Eo:_scgs
`{de5tUhrPort, destUnrPortRate,
`stats for rcv nade {rcvDestUnrPort, rcvDestUnrPortRate,
`reap“); 0133 , AE_11cV_UHRBAcH_PoaT , HULL) ; \
`stats for xnt node (xmtDestUnrPort, xntDestUnrPortRate,
`.nL__)u-:T__fn_mEKc1:_’15onT,ImL1.) ;
`}
`
`ICMP“NODE,
`
`\
`idefine icmp_stats“unreach“need frag {
`statswforgsegs
`(destUnrFr§mt, destUnrF
`HULL}; \
`stgts_for_;cv_nude
`(rcvDestUnrFrqmt,rcv
`
`De5tUnrPrgntRate,ICHP_flODE,AL_RCV_UflREACH_FRAG,HULL);\
`
`rgmtRate,
`
`ICMPh5EGHEHT, hQ_UNREACH_?RAG,
`
`
`
`Petitioners' EX1009 Page 33
`
`
`
`
`stats_for_3mt_node (xmtnestunrfrgut, xmtDestUnrFrgmtRate,IcHR NODE,
`M;__XHTfiUHREACH_FRAG,NULL) ;
`}
`"
`
`\
`idefine iomp_statsHunraachwsrc_fai1 {
`stats_fur_5egs
`(destunrsrckuute,destUnrSrcRouteRate, \
`ICI‘-[P SEGMENT, AL UNREACH SRC FAIL, HULL); \
`stats_for_rcv;node (rovDe5tUn?SrcRoute, rEvDéstUnFSrb§outeRate,
`\
`'
`'
`ICMPWHDDE, ALHRCV u1e9.rJac’H sac FAILJIULL) ,-\
`5tats_for_xmt"node (xmtDestUnrSrcRoute, KfiEDe5tUnr§rcR3uteRate,
`\
`ICHP__NODE, AL._XHT___UHREACH_SRC__FAIL,HULL),7 }
`
`fidefine icmpmstats_unreach_net_unknown { \
`\
`Statswfur_segs
`(destUnrNetUnknown, destunrnetunknownnate,
`ICHP SEGHEHT, AL URREACH NET UHKHOHN, NULL);
`\
`stats_forHrcv_node (rovDestUfirHetUnknownT rcvDesEUnffietUnknownRate,
`ICHP IIODE, 1\L___RCV.UIlREACH. Hm-_U1n<1IoI-HI , NULL) ;\
`stats__for#_xmt__node (xmtnestunfiaetunxnown, fitnestufirnetunknownnate,
`\
`10}-iP__NODE, 1\L_}'.l'l'J.‘_UHREACI-I__HE‘I‘_I.l'NKNOHN, HULL);
`
`\
`
`}
`
`fdefiine icmp_5tatsHunreach”host_unknown { \
`\
`stats_for_segs
`(destunrflostunknown, destuntflostunknownnate,
`ICHP SEGMENT, AL UHREACH_HOST UNKNOWN, NULL);
`\
`stats_for rcv_node (rcvDastUnFBostUnknownT rcvnesEUnrH3stUnknownRata,
`"
`1ruLL);\
`1c-n1r_1eom:,
`.AL_ncv_mraEAcu_HosT_UmcNoH1I_,
`stats Eor_xm§Mnode (xmtnestunrflostunknown, xmtbestvnrfloatUnkndwnRate,
`\
`‘
`ICHP__NDDE, AL__)3«lT__UllRP.hCH_HOST__UIiKNOWN, HULL);
`
`\
`
`}
`
`
`
`idefina icmp_statE_unreach_ho5t_isolated { \
`stats_fo:fisegs (destunrfiéstlaolated, deatUnrHpstIso1atedRate( \
`E‘
`\
`'
`ICHP.,SEGMENT, AI:_UN'RE'J\C_!H !{_()ST__ISOLRTEI), NULL);
`statsV£or_rcv_node (rcvDestUnrHostIsu1ated, rcynestunrflostlsolatgdnate,
`\
`=
`ICH NUDE, AL_RCV UNREACH HOST ISOLATED, HULL};\
`,
`stats_for__)mt_noc1e {mtnast-.unF1:or._t1so1atadT mtoesiunrnfistiaolatednate,
`\
`
`IcMP_2:om:, 1|L__xH‘1;UNREACHfiHOST_ISDLA'I'E:D, NULL);
`
`}
`
`Petitioners' EX1009 Page 34
`
`
`
`\
`fdefine icnp_5tatsAunreachHnet_prohibited {
`\
`stats_for_seg5
`(destUnrNetPr0hib1tefl, destUnrHetProhib1tedRate,
`1CHF_SE:Gi-IEHT, AL_UNREACH_}{ET_PROHIBITED, NULL);
`stats_for#xcv_node (rcvDestUn:HetProh1bited, rcvnestUnrRetProhibitedRate,
`ICl{P__NODE, 1\L__RCV__lJH‘REACH__NE'I'_PROHIBI'I‘ED,
`-NULL} ; \
`stats_fiormxmt_nade (xmtDestUnrHetProhibited, xmtDestUnrNetProhibitednate,
`Icz-sp_non3, AL_xH'I'__U}TREi\CI{__NE‘I‘_PROHIEITED, HULL);
`
`\
`
`\
`\
`)
`
`\
`fidefine icmp_statsWun:each_hostfiprahibited {
`Stat5_for_seg5
`(destunruastrrohibitcd, destUnrHdstProhibitedkate, \
`\
`ICI{P__SEGl-!E_I{T,
`I\L__UNREACII_l!0ST_PROI!IBITED, NULL);
`stats_for_rcvFnude (rcvDestUnrHostProhibited, rcvnnstunrH9stProhibitedRate,
`ICMP__HODE, 1\L_RCV__UNREACII__IIOST_PROHIBITED,
`l{ULL);\
`5tatsWfor_xmt”nade (xmtDe5tUnrHostProhibited, xmtDestUnrHostProhlbitedfiate,
`Icr-IPWHODE, P.L__XH'I'_UNREAC}{__H05T_PROHIBITED, HULL);
`
`\
`
`}
`
`\
`fdefine icmp_5tat5 unreach net tos .
`stats_for_segs "
`(destUnrNEtTo5, destUnrHetTosnate, \
`ICHI'__SE2GHEHT, AL_UNREhCH_HETfi'I‘OS, NULL);
`stats for rcq_node {rcvDestUnrNetTos,_rcvDe5tUnrNetTosRnte,
`\
`"
`"
`IC‘HP_NODE,, 1'\L_RCVHUNREACH__!lET__T0S, 1:'U1.L);\
`stats_for xmt_node (xmtDestUnrNetTas, xmtDestUnrHetTosRate,
`\
`"
`1cr_»:P_¢uoDr:_, ?\L_XHT_U1iREACH_IiET_TOS, HULL) ;
`
`\_
`
`}
`
`\
`fdafine icmp_stats_unreach“hast_to5 {
`\
`stats“for_;eg5 (destUnrHostTo5, destUnrHbstTosRate,
`ICHP_SEGMEHT, AL_UNREhCH_fl0ST_TOS, NULL); \
`stats for rcvwnode (rcvDestUnrBostTos, rQvDestUnrHostTosRate,
`\
`”
`"
`ICMP__NODB, AL__RCV_U'HREACH__lIOST__TOS, NULL) ,-\
`stats_fo:Hxmtmnode (xmtDestUnrHostTos,'xmtDe5tUnrHostTosRate,
`\
`‘
`ICMPWNODE, AI.:_._X}-l'I‘__.U}lRI-l;E\CH__}{0ST__TOS-, NULL);
`
`}
`
`
`
`
`
`EE
`
`Ei
`E
`
`Petitioners' EX1009 Page 35
`
`
`
`
`
`29
`
`édefine icmp_sbats”5rc_guen:h { \
`\
`ICHP_sEGHENT, hL_SRC_QUBNCH, NULL);
`stat5Hfor_segs
`(srcquench, srcQuenchRate,
`5tats_for_rcv_node {rcvSrcQuench,
`rcvSrcQuenchRat¢,
`ICHP_NODE, ALLRCV_SRC“QUEHCH,NULL);\
`stats”for_xmt_node (xmtSrcQuench, xmt5rcQuenchRatc,
`ICHP_NODE, nLL3HT"SRc_QUEHCH,NULL);
`
`\
`Edefine icmp_5tatsfiredirect {
`):e'_cli_rRa|_:e.
`(redir,
`statsfifor_segs
`(redir, redirnata,
`stats_for_nodes
`
`_
`ICHF SEGMENT, AL REDIR, HULL);
`_
`_
`_
`ICHP_NODE, hL“REDIR,HULL);
`}
`
`\
`
`fidefine icnp_stats_redirectHnet { \
`ICMP SEGHEHTL AL_nEDIR NET, NULL); \
`stats Eorusegs
`(redirflet, rediruetnate,
`'stats:Eor_rcv_node frcvnedirflet, L-cvnedirnecnatei ICHE-‘__NODE:, M..__Hc?_n_EoIt1__NET,1nJLL);\
`stats_£or"xmt_node (xmtnedirflet, xmtfledirfletaate,
`ICMP_NDDE, AL_xHT_REDIR_HET,NULL);
`
`)
`
`#define icmp_statsmredirect host { \
`ICMP saennuw, BL REDIR HOST, HULL);
`ostRate,
`\
`w
`_
`_
`_
`_
`statsHfor_scgs
`(redirfiost, redirfi
`stats_£or_rcv_node {rcvRcdirHuSt, rcvRedirHostRate,
`ICHP_HODB, AL_RCKflRBD1R_H05T,HULL);\
`statsmfor_xmt_node (xntRedirflost, xmtRedirflo5tRate,
`ICHP_NODE, hL;XHI_REDIR#HOST,NULL);
`
`\
`idefina icmn_stats redirect net tos {
`sta\:s_fo1_:__seg5 ‘
`treclirfietvl-Es, redi.rHetTosRate, 1cm=_s}:GHEwr, AI.-_REDiR_NE"I'_'I'0S, NULL);
`' stats for rcv node (rcvRedirHetTos, rcvRedirNetTosRate,
`ICHP_fiODE,AEhRCV_REDIRHfiET_TOS,NULL};\
`_A
`stats_ror_xmp_noae (xmtRadirNetTo5, xmtRedirNetRate, 1CHP_BODB, ALLXHT_REDIR_HET,NULL);
`
`
`
`Petitioners' EX1009 Page 36
`
`
`
`fldefine icmp_statsfire
`_ statsdforwsegs
`NULL) ;
`\
`'
`