Files
dtsstreaming/__pycache__/pcap_analyzer.cpython-313.pyc

170 lines
28 KiB
Plaintext
Raw Normal View History

2025-07-24 10:50:29 -04:00
<EFBFBD>
[/<2F>h]U<00><00><><00>SrSSKrSSKrSSKJr SSKJrJrJrJr SSK r SSK
r
SSK J r SSKJrJr SSKJr SSKrSSKr"S S 5r"S S5r"SS5rSr\S:Xa\"5 gg!\a \"S5 \"S5 NRf=f!\a \"S 5 \"S5 Nif=f!\a \"S
5 \"S5 N<>f=f)z<>
PCAP Analyzer for IRIG106 Chapter 10 and IEEE1588 PTP frames
Analyzes ethernet traffic with Chapter 10 streaming data and PTP frames
<EFBFBD>N)<01>datetime)<04>Dict<63>List<73>Optional<61>Tuple)<02>IP<49>UDP)<01>Etherz?Error: scapy library not found. Install with: pip install scapy<70>zAError: pandas library not found. Install with: pip install pandasz?Error: numpy library not found. Install with: pip install numpyc<00>R<00>\rSrSrSrS\S\S\S\S\S\S \4S
jr S \
\ 4S jr S r g)<0F>Chapter10Packet<65>#z'Represents an IRIG106 Chapter 10 packet<65> timestamp<6D>src_ip<69>dst_ip<69>src_port<72>dst_port<72>payload<61> packet_sizec<00><><00>XlX lX0lX@lXPlX`lXplUR5Ulg<00>N) rrrrrrr<00>_parse_ch10_header<65> ch10_header)<08>selfrrrrrrrs <20>(/Users/noise/Code/pydts/pcap_analyzer.py<70>__init__<5F>Chapter10Packet.__init__&s7<00><00>"<22><0E><1C> <0B><1C> <0B> <20> <0A> <20> <0A><1E> <0C>&<26><18><1F>2<>2<>4<><04><18><00>returnc<00><><00>[UR5S:agSn[[S[UR5S-
55H6n[R
"SURX"S-5SnUS:XdM4Un O UcgUn[R
"SURXDS-5Sn[R
"SURUS-US -5Sn[R
"S
URUS -US-5Sn[R
"S
URUS-US -5SnURUS -nURUS -n URUS -n
URUS-n [R
"S
URUS-US-5Sn [R
"SURUS-US-5Sn [R
"SURUS-US-5SnXlSUS3UUUUU SU
S3SU S3U U SUS3U S-U -US. $![R[4a gf=f)z$Parse Chapter 10 header from payload<61>N<><00>z<H<>ri%<25><00>z<I<> <00> <00><00><00><00><00><00>0x<30>04X<34>02X<32> ) <0A> sync_pattern<72>
channel_id<EFBFBD> packet_length<74> data_length<74>header_version<6F>sequence_number<65> packet_flags<67> data_type<70>rtc_low<6F>rtc_high<67>checksum<75> rtc_timestamp<6D> ch10_offset) <09>lenr<00>range<67>min<69>struct<63>unpackr=<00>error<6F>
IndexError)rr=<00>offsetr1<00>baser2r3r4r5r6r7r8r9r:r;s rr<00>"Chapter10Packet._parse_ch10_header1sk<00><00> <0E>t<EFBFBD>|<7C>|<7C> <1C>r<EFBFBD> !<21><17>- <18><1E>K<EFBFBD><1F><03>A<EFBFBD>s<EFBFBD>4<EFBFBD><<3C><<3C>'8<>2<EFBFBD>'=<3D> ><3E>?<3F><06>%<25>}<7D>}<7D>T<EFBFBD>4<EFBFBD><<3C><<3C><06>a<EFBFBD>x<EFBFBD>3P<33>Q<>RS<52>T<> <0C><1F>6<EFBFBD>)<29>"(<28>K<EFBFBD><19> @<01> <1B>"<22><1B><1F>D<EFBFBD>!<21>=<3D>=<3D><14>t<EFBFBD>|<7C>|<7C>D<EFBFBD>a<EFBFBD><16>/H<>I<>!<21>L<>L<EFBFBD><1F><1D><1D>t<EFBFBD>T<EFBFBD>\<5C>\<5C>$<24>q<EFBFBD>&<26><14>a<EFBFBD><16>-H<>I<>!<21>L<>J<EFBFBD>"<22>M<EFBFBD>M<EFBFBD>$<24><04> <0C> <0C>T<EFBFBD>!<21>V<EFBFBD>D<EFBFBD><11>F<EFBFBD>0K<30>L<>Q<EFBFBD>O<>M<EFBFBD> <20>-<2D>-<2D><04>d<EFBFBD>l<EFBFBD>l<EFBFBD>4<EFBFBD><01>6<EFBFBD>$<24>r<EFBFBD>'<27>.J<>K<>A<EFBFBD>N<>K<EFBFBD>!<21>\<5C>\<5C>$<24>r<EFBFBD>'<27>2<>N<EFBFBD>"<22>l<EFBFBD>l<EFBFBD>4<EFBFBD><02>7<EFBFBD>3<>O<EFBFBD><1F><<3C><<3C><04>R<EFBFBD><07>0<>L<EFBFBD><1C> <0C> <0C>T<EFBFBD>"<22>W<EFBFBD>-<2D>I<EFBFBD><1C>m<EFBFBD>m<EFBFBD>D<EFBFBD>$<24>,<2C>,<2C>t<EFBFBD>B<EFBFBD>w<EFBFBD>t<EFBFBD>B<EFBFBD>w<EFBFBD>*G<>H<><11>K<>G<EFBFBD><1D>}<7D>}<7D>T<EFBFBD>4<EFBFBD><<3C><<3C><04>R<EFBFBD><07><04>R<EFBFBD><07>+H<>I<>!<21>L<>H<EFBFBD><1D>}<7D>}<7D>T<EFBFBD>4<EFBFBD><<3C><<3C><04>R<EFBFBD><07><04>R<EFBFBD><07>+H<>I<>!<21>L<>H<EFBFBD> +<2B> <1C>#%<25>\<5C>#<23>$6<> 7<>(<28>!.<2E>*<2A>"0<>#2<>"$<24>\<5C>#<23>$6<> 7<>!<21>)<29>C<EFBFBD><1F>1<>"<22>$<24> <20><18>#<23><0E>/<2F>"*<2A>b<EFBFBD>.<2E>G<EFBFBD>!;<3B>*<2A><0E> <0E><><17> <0C> <0C>j<EFBFBD>)<29> <18><17> <18>s<00>AH4<00>= H4<00>F,H4<00>4I<03>I) rr=rrrrrrrN)<0E>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__<5F>float<61>str<74>int<6E>bytesrrrr<00>__static_attributes__<5F>rrr r #sN<00><00>1<> 5<>%<25> 5<><13> 5<>c<EFBFBD> 5<>S<EFBFBD> 5<><1E> 5<>).<2E> 5<>=@<40> 5<>2<18>H<EFBFBD>T<EFBFBD>N<EFBFBD>2rr c<00>F<00>\rSrSrSrS\S\S\S\4SjrS\ \
4S jr S
r g ) <0C> PTPPacket<65>fz!Represents an IEEE1588 PTP packetrrrrc<00>^<00>XlX lX0lX@lUR 5Ulgr)rrrr<00>_parse_ptp_header<65>
ptp_header)rrrrrs rr<00>PTPPacket.__init__is&<00><00>"<22><0E><1C> <0B><1C> <0B><1E> <0C><1E>0<>0<>2<><04>rrc <00>&<00>[UR5S:agURSS-nURSS- S-n[R"SURSS5SnURSn[R"SURS S
5Sn[R"S URS
S 5SnURS SR 5n[R"SURSS5SnURSn [R"SURSS5Sn
SSSSSSSSSSS.
n U R USUS35UUUSUS 3UUUU U
S!.
$![R [4a gf=f)"zParse PTP header from payload<61>"Nrr)r r%z>Hr$<00>r"z>Qr*r+<00>r0<00>b<>!<00>Sync<6E> Delay_Req<65>
Pdelay_Req<EFBFBD> Pdelay_Resp<73> Follow_Up<55>
Delay_Resp<EFBFBD>Pdelay_Resp_Follow_Up<55>Announce<63> Signaling<6E>
Management)
rr r$<00>r"<00> <00>
<00> r&r'zUnknown(<28>)r-r.)
<EFBFBD> message_type<70>version<6F>message_length<74> domain_number<65>flags<67>correction_field<6C>source_port_id<69> sequence_id<69> control_field<6C>log_message_interval)r>rrArB<00>hex<65>getrCrD) rrorprqrrrsrtrurvrwrx<00> message_typess rrW<00>PTPPacket._parse_ptp_headerps<><00><00> <0E>t<EFBFBD>|<7C>|<7C> <1C>r<EFBFBD> !<21><17> <18><1F><<3C><<3C><01>?<3F>T<EFBFBD>1<>L<EFBFBD><1B>|<7C>|<7C>A<EFBFBD><EFBFBD>!<21>+<2B>t<EFBFBD>3<>G<EFBFBD>#<23>]<5D>]<5D>4<EFBFBD><14><1C><1C>a<EFBFBD><01>1B<31>C<>A<EFBFBD>F<>N<EFBFBD> <20>L<EFBFBD>L<EFBFBD><11>O<EFBFBD>M<EFBFBD><1A>M<EFBFBD>M<EFBFBD>$<24><04> <0C> <0C>Q<EFBFBD>q<EFBFBD>(9<>:<3A>1<EFBFBD>=<3D>E<EFBFBD>%<25>}<7D>}<7D>T<EFBFBD>4<EFBFBD><<3C><<3C><01>"<22>3E<33>F<>q<EFBFBD>I<> <1C>!<21>\<5C>\<5C>"<22>R<EFBFBD>0<>4<>4<>6<>N<EFBFBD> <20>-<2D>-<2D><04>d<EFBFBD>l<EFBFBD>l<EFBFBD>2<EFBFBD>b<EFBFBD>.A<>B<>1<EFBFBD>E<>K<EFBFBD> <20>L<EFBFBD>L<EFBFBD><12>,<2C>M<EFBFBD>#)<29>=<3D>=<3D><13>d<EFBFBD>l<EFBFBD>l<EFBFBD>2<EFBFBD>b<EFBFBD>6I<36>#J<>1<EFBFBD>#M<> <20><1C>+<2B>L<EFBFBD>}<7D> <20>|<7C>:Q<><1F>k<EFBFBD> <0C><0E>M<EFBFBD>!.<2E> 1<> 1<>,<2C>(<28><<3C>.<2E>XY<58>@Z<> [<5B>"<22>"0<>!.<2E><1D>e<EFBFBD>C<EFBFBD>[<5B>)<29>$4<>"0<>*<2A>!.<2E>(<<3C> <0E> <0E><><17> <0C> <0C>j<EFBFBD>)<29> <18><17> <18>s<00>EE3<00>3F<03>F)rrrXrrN) rHrIrJrKrLrMrNrPrrrrWrQrRrrrTrTfs6<00><00>+<2B>3<>%<25>3<><13>3<>c<EFBFBD>3<>E<EFBFBD>3<>$<18>8<EFBFBD>D<EFBFBD>><3E>$rrTc<00>\<00>\rSrSrSrS\4SjrSrSrSr Sr
S r S
r S r S rS rSrg)<10> PcapAnalyzer<65><72>z"Main analyzer class for PCAP files<65> pcap_filec<00>,<00>Xl/Ul/Ulgr)r<><00> ch10_packets<74> ptp_packets)rr<>s rr<00>PcapAnalyzer.__init__<5F>s<00><00>"<22><0E>35<33><04><19>,.<2E><04>rc<00><><00>[SUR35 [R"UR5n[S[ U535 [ U5H.up4US-S:Xa[SUS35 URU5 M0 [S [ UR5S
35 [S [ UR5S 35 g![an[SU35 SnAgSnAff=f) zAnalyze the PCAP filezAnalyzing PCAP file: zError reading PCAP file: NzTotal packets: <20><>rzProcessing packet z...zFound z Chapter 10 packetsz PTP packets)
<EFBFBD>printr<74><00>scapy<70>rdpcap<61> Exceptionr><00> enumerate<74>_process_packetr<74>r<>)r<00>packets<74>e<>i<>packets r<00>analyze<7A>PcapAnalyzer.analyze<7A>s<><00><00> <0A>%<25>d<EFBFBD>n<EFBFBD>n<EFBFBD>%5<>6<>7<> <13><1B>l<EFBFBD>l<EFBFBD>4<EFBFBD>><3E>><3E>2<>G<EFBFBD>
<0E><0F><03>G<EFBFBD> <0C>~<7E>.<2E>/<2F>"<22>7<EFBFBD>+<2B>I<EFBFBD>A<EFBFBD><10>4<EFBFBD>x<EFBFBD>1<EFBFBD>}<7D><15>*<2A>1<EFBFBD>#<23>S<EFBFBD>1<>2<> <10> <20> <20><16> (<28> ,<2C> <0E><06>s<EFBFBD>4<EFBFBD>,<2C>,<2C>-<2D>.<2E>.A<>B<>C<> <0A><06>s<EFBFBD>4<EFBFBD>+<2B>+<2B>,<2C>-<2D>\<5C>:<3A>;<3B><><19> <13> <11>-<2D>a<EFBFBD>S<EFBFBD>1<> 2<> <12><> <13>s<00> C<00>
C5<03>C0<03>0C5c <00>z<00>UR[5(aUR[5(dg[UR5nU[nU[nUR
nUR nURnURn[UR5n [U5n
US;dUS;a8[X%Xi5n U R(aURRU 5 [U 5S:<3A>a<[!X%XgX<67>U
5n U R"(aUR$RU 5 ggg)zProcess individual packetN)i?i@r!)<13>haslayerrr rM<00>time<6D>src<72>dst<73>sport<72>dportrPrr>rTrXr<><00>appendr rr<>) rr<>r<00>ip_layer<65> udp_layerrrrrrr<00>
ptp_packet<EFBFBD> ch10_packets rr<><00>PcapAnalyzer._process_packet<65>s<><00><00><15><EFBFBD><EFBFBD>r<EFBFBD>"<22>"<22>&<26>/<2F>/<2F>#<23>*><3E>*><3E> <12><19>&<26>+<2B>+<2B>&<26> <09><19>"<22>:<3A><08><1A>3<EFBFBD>K<EFBFBD> <09><19><1C><1C><06><19><1C><1C><06><1C>?<3F>?<3F><08><1C>?<3F>?<3F><08><17> <09>)<29>)<29>*<2A><07><19>&<26>k<EFBFBD> <0B> <14>z<EFBFBD> !<21>X<EFBFBD><1A>%;<3B>"<22>9<EFBFBD>f<EFBFBD>F<>J<EFBFBD><19>$<24>$<24><14> <20> <20>'<27>'<27>
<EFBFBD>3<> <0F>w<EFBFBD><<3C>2<EFBFBD> <1D>)<29>)<29>V<EFBFBD>x<EFBFBD>bm<62>n<>K<EFBFBD><1A>&<26>&<26><14>!<21>!<21>(<28>(<28><1B>5<>'<27> rc
<00>\<00>UR(d [S5 g[S5 [S5 [S5 [UR5n[SU35 US:<3A>a<>[SUR55n[ S UR55nX2-
n[S
US S 35 [S [
R "U5RS5SS35 [S[
R "U5RS5SS35 0n0nURHOnURSnURSn URUS5S-XX'URU S5S-Xi'MQ [S5 [UR55H$nXXn
X<EFBFBD>- S-n [SUSU
SU SS35 M& [S5 [UR55H$n Xin
X<EFBFBD>- S-n [SU SU
SU SS35 M& URVs/sHowRPM n nURVs/sHowRSPM n n[S5 [S[R"U 5SS 35 [S![U 5S 35 [S"[ U 5S 35 [S#[U 5S$S 35 WS:<3A>aAX- n[U 5U- n[S%5 [S&USS'35 [S(US)- SS*35 ggs snfs snf)+z%Display Chapter 10 summary statistics<63>No Chapter 10 packets foundN<64>Q
================================================================================zCHAPTER 10 SUMMARY<52>P================================================================================zTotal Chapter 10 packets: rc3<00>8# <00>UHoRv<00> M g7fr<00>r<00><02>.0<EFBFBD>pkts r<00> <genexpr><3E>4PcapAnalyzer.display_ch10_summary.<locals>.<genexpr><3E>s<00><00><00>H<>6G<36>s<EFBFBD>]<5D>]<5D>6G<36><47><00>c3<00>8# <00>UHoRv<00> M g7frr<>r<>s rr<>r<><00>s<00><00><00>F<>4E<34>S<EFBFBD>=<3D>=<3D>4E<34>r<EFBFBD><00> Time span: <20>.3f<EFBFBD> seconds<64> Start time: <20> %H:%M:%S.%f<><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
End time: r2r8r z
Channel distribution:<3A>d<00>
Channel <20>: <20>
packets (<28>.1f<EFBFBD>%)z
Data type distribution:z Type r4z
Packet size statistics:z Average: z bytesz Min: z Max: z Total data: <20>,<2C>
Rate statistics:z Packet rate: <20> packets/secz Data rate: iz KB/sec)r<>r<>r>r@<00>maxr<00> fromtimestamp<6D>strftimerrz<00>sorted<65>keysr<00>
statistics<EFBFBD>mean<61>sum)r<00> total_packets<74>
start_time<EFBFBD>end_time<6D>duration<6F>channels<6C>
data_typesr<EFBFBD><00>ch_idr8<00>count<6E>
percentage<EFBFBD>sizes<65> data_lengths<68> packet_rate<74> data_rates r<00>display_ch10_summary<72>!PcapAnalyzer.display_ch10_summary<72>s<00><00><13> <20> <20> <11>/<2F> 0<> <12> <0A>m<EFBFBD><1C> <0A>"<22>#<23> <0A>f<EFBFBD> <0A><1C>D<EFBFBD>-<2D>-<2D>.<2E> <0A> <0A>*<2A>=<3D>/<2F>:<3A>;<3B> <19>1<EFBFBD> <1C><1C>H<>d<EFBFBD>6G<36>6G<36>H<>H<>J<EFBFBD><1A>F<>D<EFBFBD>4E<34>4E<34>F<>F<>H<EFBFBD><1F>,<2C>H<EFBFBD> <11>K<EFBFBD><08><13>~<7E>X<EFBFBD>6<> 7<> <11>L<EFBFBD><18>!7<>!7<>
<EFBFBD>!C<>!L<>!L<>]<5D>![<5B>\_<>]_<>!`<60> a<>b<> c<> <11>J<EFBFBD>x<EFBFBD>5<>5<>h<EFBFBD>?<3F>H<>H<><1D>W<>X[<5B>Y[<5B>\<5C>]<5D>^<5E> _<><16><08><17>
<EFBFBD><17>$<24>$<24>C<EFBFBD><17>O<EFBFBD>O<EFBFBD>L<EFBFBD>1<>E<EFBFBD><1B><0F><0F> <0B>4<>I<EFBFBD>&<26>l<EFBFBD>l<EFBFBD>5<EFBFBD>!<21>4<>q<EFBFBD>8<>H<EFBFBD>O<EFBFBD>$.<2E>N<EFBFBD>N<EFBFBD>9<EFBFBD>a<EFBFBD>$@<40>1<EFBFBD>$D<>J<EFBFBD> !<21> %<25> <0E>'<27>)<29><1B>H<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD>,<2C>E<EFBFBD><1C>O<EFBFBD>E<EFBFBD><1F>/<2F>3<EFBFBD>6<>J<EFBFBD> <11>J<EFBFBD>u<EFBFBD>g<EFBFBD>R<EFBFBD><05>w<EFBFBD>j<EFBFBD><1A>C<EFBFBD>8H<38><02>K<> L<>-<2D>
<0E>)<29>+<2B><1F>
<EFBFBD><0F><0F> 1<>2<>I<EFBFBD><1E>)<29>E<EFBFBD><1F>/<2F>3<EFBFBD>6<>J<EFBFBD> <11>G<EFBFBD>I<EFBFBD>;<3B>b<EFBFBD><15><07>z<EFBFBD>*<2A>S<EFBFBD>9I<39><12>L<> M<>3<> -1<>,=<3D>,=<3D>><3E>,=<3D>S<EFBFBD><1F><1F>,=<3D><05>><3E>BF<42>BS<42>BS<42>T<>BS<42>3<EFBFBD><0F><0F> <0A>6<>BS<42> <0C>T<> <0A>)<29>+<2B> <0A> <0B>J<EFBFBD>O<EFBFBD>O<EFBFBD>E<EFBFBD>2<>3<EFBFBD>7<>v<EFBFBD>><3E>?<3F> <0A><07><03>E<EFBFBD>
<EFBFBD>|<7C>6<EFBFBD>*<2A>+<2B> <0A><07><03>E<EFBFBD>
<EFBFBD>|<7C>6<EFBFBD>*<2A>+<2B> <0A><0E>s<EFBFBD><<3C>0<><11>3<>6<EFBFBD>:<3A>;<3B> <14>a<EFBFBD><<3C>'<27>2<>K<EFBFBD><1B>L<EFBFBD>)<29>H<EFBFBD>4<>I<EFBFBD> <11>&<26> (<28> <11>O<EFBFBD>K<EFBFBD><03>#4<>L<EFBFBD>A<> B<> <11>M<EFBFBD>)<29>D<EFBFBD>.<2E><13>!5<>W<EFBFBD>=<3D> ><3E> <18><>?<3F><>Ts <00>%L$<04>
L)c<00>`<00>UR(d [S5 g[S5 [S5 [S5 /n[UR5H<>up#URnUR US-[
R "UR5RS5SSURURURURUS US
US US US USURS. 5 M<> [R"U5n[UR!SS95 g)z*Display Chapter 10 packets in table formatr<74>Nzy
========================================================================================================================zCHAPTER 10 PACKET ANALYSISzx========================================================================================================================r r<>r<>r2r6r8r3r4r7) <0A>Packet#<23> Timestamp<6D>Src IP<49>Dst IPzSrc PortzDst Portz
Channel IDzSeq Numz Data Typez
Pkt Lengthz Data Length<74>Flags<67>SizeF<65><01>index)r<>r<>r<>rr<>rr<>rr<>rrrrr<00>pd<70> DataFrame<6D> to_string<6E>r<00>datar<61>r<><00>header<65>dfs r<00>display_ch10_table<6C>PcapAnalyzer.display_ch10_tables <00><00><13> <20> <20> <11>/<2F> 0<> <12> <0A>n<EFBFBD><1D> <0A>*<2A>+<2B> <0A>g<EFBFBD><0E><12><04><1F><04> 1<> 1<>2<>F<EFBFBD>A<EFBFBD><18>_<EFBFBD>_<EFBFBD>F<EFBFBD> <10>K<EFBFBD>K<EFBFBD><1C>Q<EFBFBD>3<EFBFBD>%<25>3<>3<>C<EFBFBD>M<EFBFBD>M<EFBFBD>B<>K<>K<>M<EFBFBD>Z<>[^<5E>\^<5E>_<><1D>*<2A>*<2A><1D>*<2A>*<2A><1F>L<EFBFBD>L<EFBFBD><1F>L<EFBFBD>L<EFBFBD>$<24>\<5C>2<>!<21>"3<>4<>#<23>K<EFBFBD>0<>$<24>_<EFBFBD>5<>%<25>m<EFBFBD>4<><1F><0E>/<2F><1B><0F><0F><0E> <0F>3<>$<10>\<5C>\<5C>$<24> <1F><02> <0A>b<EFBFBD>l<EFBFBD>l<EFBFBD><15>l<EFBFBD>'<27>(rc
<00><><00>UR(d [S5 g[S5 [S5 [S5 [UR5n[SU35 US:<3A>a<>[SUR55n[ S UR55nX2-
n[S
US S 35 [S [
R "U5RS5SS35 [S[
R "U5RS5SS35 0n0n0nURHrnURSn URSn
URn URU S5S-XY'URU
S5S-Xj'URU S5S-X{'Mt [S5 [UR55H$n XYn X<>- S-n [SU SU SU SS35 M& [S5 [UR55H$n
Xjn X<>- S-n [SU
SU SU SS35 M& [S5 [UR55H$n X{n X<>- S-n [SU SU SU SS35 M& WS:<3A>aMX- n[S5 [SUSS 35 URS!S5nUS:<3A>aX<>- n[S"USS 35 ggg)#zDisplay PTP summary statistics<63>No PTP packets foundNr<4E>zIEEE1588 PTP SUMMARYr<59><00>Total PTP packets: rc3<00>8# <00>UHoRv<00> M g7frr<>r<>s rr<><00>3PcapAnalyzer.display_ptp_summary.<locals>.<genexpr>@s<00><00><00>G<>6F<36>s<EFBFBD>]<5D>]<5D>6F<36>r<EFBFBD>c3<00>8# <00>UHoRv<00> M g7frr<>r<>s rr<>r<>As<00><00><00>E<>4D<34>S<EFBFBD>=<3D>=<3D>4D<34>r<EFBFBD>r<>r<>r<>r<>r<>r<>r<>rorrr z
Message type distribution:r<><00> r<>r<>r<>r<>z
Domain distribution:z Domain z
Source IP distribution:r<>z Overall PTP rate: r<>r`z Sync message rate: ) r<>r<>r>r@r<>rr<>r<>rXrrzr<>r<>)rr<>r<>r<>r<><00> msg_types<65>domains<6E>sourcesr<73><00>msg_type<70>domain<69>sourcer<65>r<>r<><00>
sync_count<EFBFBD> sync_rates r<00>display_ptp_summary<72> PcapAnalyzer.display_ptp_summary0s<><00><00><13><1F><1F> <11>(<28> )<29> <12> <0A>m<EFBFBD><1C> <0A>$<24>%<25> <0A>f<EFBFBD> <0A><1C>D<EFBFBD>,<2C>,<2C>-<2D> <0A> <0A>#<23>M<EFBFBD>?<3F>3<>4<> <19>1<EFBFBD> <1C><1C>G<>d<EFBFBD>6F<36>6F<36>G<>G<>J<EFBFBD><1A>E<>D<EFBFBD>4D<34>4D<34>E<>E<>H<EFBFBD><1F>,<2C>H<EFBFBD> <11>K<EFBFBD><08><13>~<7E>X<EFBFBD>6<> 7<> <11>L<EFBFBD><18>!7<>!7<>
<EFBFBD>!C<>!L<>!L<>]<5D>![<5B>\_<>]_<>!`<60> a<>b<> c<> <11>J<EFBFBD>x<EFBFBD>5<>5<>h<EFBFBD>?<3F>H<>H<><1D>W<>X[<5B>Y[<5B>\<5C>]<5D>^<5E> _<><17> <09><14><07><14><07><17>#<23>#<23>C<EFBFBD><1A>~<7E>~<7E>n<EFBFBD>5<>H<EFBFBD><18>^<5E>^<5E>O<EFBFBD>4<>F<EFBFBD><18>Z<EFBFBD>Z<EFBFBD>F<EFBFBD>"+<2B>-<2D>-<2D><08>!<21>"<<3C>q<EFBFBD>"@<40>I<EFBFBD> <1F>%<25>k<EFBFBD>k<EFBFBD>&<26>!<21>4<>q<EFBFBD>8<>G<EFBFBD>O<EFBFBD>%<25>k<EFBFBD>k<EFBFBD>&<26>!<21>4<>q<EFBFBD>8<>G<EFBFBD>O<EFBFBD>$<24> <0E>,<2C>.<2E><1E>y<EFBFBD>~<7E>~<7E>/<2F>0<>H<EFBFBD><1D>'<27>E<EFBFBD><1F>/<2F>3<EFBFBD>6<>J<EFBFBD> <11>B<EFBFBD>x<EFBFBD>j<EFBFBD><02>5<EFBFBD>'<27><1A>J<EFBFBD>s<EFBFBD>3C<33>2<EFBFBD>F<> G<>1<>
<0E>&<26>(<28><1C>W<EFBFBD>\<5C>\<5C>^<5E>,<2C>F<EFBFBD><1B>O<EFBFBD>E<EFBFBD><1F>/<2F>3<EFBFBD>6<>J<EFBFBD> <11>I<EFBFBD>f<EFBFBD>X<EFBFBD>R<EFBFBD><05>w<EFBFBD>j<EFBFBD><1A>C<EFBFBD>8H<38><02>K<> L<>-<2D>
<0E>)<29>+<2B><1C>W<EFBFBD>\<5C>\<5C>^<5E>,<2C>F<EFBFBD><1B>O<EFBFBD>E<EFBFBD><1F>/<2F>3<EFBFBD>6<>J<EFBFBD> <11>B<EFBFBD>v<EFBFBD>h<EFBFBD>b<EFBFBD><15><07>z<EFBFBD>*<2A>S<EFBFBD>1A<31><12>D<> E<>-<2D> <14>a<EFBFBD><<3C>'<27>2<>K<EFBFBD> <11>&<26> (<28> <11>(<28><1B>S<EFBFBD>(9<><1C>F<> G<>#<23><1D><1D>v<EFBFBD>q<EFBFBD>1<>J<EFBFBD><19>A<EFBFBD>~<7E>&<26>1<> <09><15>-<2D>i<EFBFBD><03>_<EFBFBD>L<EFBFBD>I<>J<><1E> rc<00><00>UR(d [S5 g[S5 [S5 [S5 /n[UR5H<>up#URnUR US-[
R "UR5RS5SSURURUS US
US US US USS.
5 M<> [R"U5n[URSS95 g)z#Display PTP packets in table formatr<74>Nze
====================================================================================================zIEEE1588 PTP PACKET ANALYSISzd====================================================================================================r r<>r<>rorrrvrsrtrx)
r<EFBFBD>r<>r<>r<>z Message Type<70>Domainz Sequence IDr<44><00>
Correction<EFBFBD>IntervalFr<46>)r<>r<>r<>rXr<>rr<>rr<>rrr<>r<>r<>r<>s r<00>display_ptp_table<6C>PcapAnalyzer.display_ptp_tabless<><00><00><13><1F><1F> <11>(<28> )<29> <12> <0A>n<EFBFBD><1D> <0A>,<2C>-<2D> <0A>g<EFBFBD><0E><11><04><1F><04> 0<> 0<>1<>F<EFBFBD>A<EFBFBD><18>^<5E>^<5E>F<EFBFBD> <10>K<EFBFBD>K<EFBFBD><1C>Q<EFBFBD>3<EFBFBD>%<25>3<>3<>C<EFBFBD>M<EFBFBD>M<EFBFBD>B<>K<>K<>M<EFBFBD>Z<>[^<5E>\^<5E>_<><1D>*<2A>*<2A><1D>*<2A>*<2A> &<26>~<7E> 6<> <20><1F>1<>%<25>m<EFBFBD>4<><1F><07><1F>$<24>%7<>8<>"<22>#9<>:<3A> <0E> <0F>2<><10>\<5C>\<5C>$<24> <1F><02> <0A>b<EFBFBD>l<EFBFBD>l<EFBFBD><15>l<EFBFBD>'<27>(rc<00><><00>[S5 [S5 [S5 UR(aUR5 UR(aUR 5 gg)z=Perform statistical analysis for intermittent issue detectionr<6E>zSTATISTICAL ANALYSISr<53>N)r<>r<><00>_analyze_ch10_statisticsr<73><00>_analyze_ptp_statistics)rs r<00>statistical_analysis<69>!PcapAnalyzer.statistical_analysis<69>sI<00><00> <0A>m<EFBFBD><1C> <0A>$<24>%<25> <0A>f<EFBFBD> <0A> <0F> <1C> <1C> <10> )<29> )<29> +<2B> <0F> <1B> <1B> <10> (<28> (<28> *<2A> rc <00>T<00>[S5 [S5 URVs/sHoRPM nn[U5S:<3A>Ga<>[ [U5S-
5Vs/sHo2US-X#-
PM nn[S[UR535 [SUSUS-
SS 35 [S
[
R "U5S -SS 35 [S [U5S -SS 35 [S[U5S -SS 35 [S[
R"U5S -SS 35 [
R "U5n[
R"U5n/n/n[U5HCup9[X<>-
5SU-:<3A>dMURU S -5 URUS-5 ME U(a<>[S[U5S35 [S5 [[X<>55HFunup<>US:a[SU
SU SS35 M#US:XdM+[S[U5S-
S35 MH URVs/sHoRSPM n n[U 5n [S[!U 535 U H&nU R#U5n[SUSUS35 M( URVs/sHoRSPM nn[[U55[U5:a/[U5[[U55-
n[SUS 35 /n[ S[U55H<nUUS-
S-S!-nUUU:wdMURUS-UUS-
UU45 M> U(a<>[S[U5S"35 [S#5 [U5HOunun
nnUS:a[SU
S$US-S!-S%U35 M,US:XdM4[S[U5S-
S&35 MQ g'g's snfs snfs snfs snf)(z$Analyze Chapter 10 packet statisticsz
Chapter 10 Statistics:<3A>(----------------------------------------r zPacket count: r<><00><><EFBFBD><EFBFBD><EFBFBD>rr<>r<>zAverage interval: r<><00> mszMin interval: zMax interval: zStd deviation: rjr$z WARNING: z timing outliers detected!zOutlier details:rlz Frame r<>z ms intervalz
... and z more outliersr2zUnique channels: r<><00> packetsr6z% duplicate sequence numbers detected!<21>z sequence number gaps detected!zSequence gap details:z : expected z, got z
more gapsN)r<>r<>rr>r?r<>r<>r@r<><00>stdevr<76><00>absr<73><00>zipr<00>setr<74>r<>)rr<><00>
timestampsr<EFBFBD><00> intervals<6C> mean_interval<61> std_interval<61>outliers<72>outlier_frames<65>interval<61> frame_num<75> interval_ms<6D> channel_ids<64>unique_channelsr<73>r<><00> seq_numbers<72>
duplicates<EFBFBD>seq_gaps<70>expected<65>prev<65>currs rr<><00>%PcapAnalyzer._analyze_ch10_statistics<63>s<00><00> <0A>(<28>)<29> <0A>h<EFBFBD><0F>04<30>/@<40>/@<40>A<>/@<40><03>m<EFBFBD>m<EFBFBD>/@<40>
<EFBFBD>A<> <0E>z<EFBFBD>?<3F>Q<EFBFBD> <1E>BG<42><03>J<EFBFBD><0F>XY<58>HY<48>BZ<42>[<5B>BZ<42>Q<EFBFBD>A<EFBFBD>a<EFBFBD>C<EFBFBD><1F>:<3A>=<3D>8<>BZ<42>I<EFBFBD>[<5B> <11>N<EFBFBD>3<EFBFBD>t<EFBFBD>'8<>'8<>#9<>":<3A>;<3B> <<3C> <11>K<EFBFBD>
<EFBFBD>2<EFBFBD><0E><1A>A<EFBFBD><1D> ><3E>s<EFBFBD>C<>8<EFBFBD>L<> M<> <11>&<26>z<EFBFBD><EFBFBD><EFBFBD>y<EFBFBD>'A<>$<24>'F<>s<EFBFBD>&K<>3<EFBFBD>O<> P<> <11>N<EFBFBD>3<EFBFBD>y<EFBFBD>><3E>$<24>#6<>s<EFBFBD>";<3B>3<EFBFBD>?<3F> @<40> <11>N<EFBFBD>3<EFBFBD>y<EFBFBD>><3E>$<24>#6<>s<EFBFBD>";<3B>3<EFBFBD>?<3F> @<40> <11>O<EFBFBD>J<EFBFBD>$4<>$4<>Y<EFBFBD>$?<3F><04>$D<>S<EFBFBD>#I<><13>M<> N<>'<27>O<EFBFBD>O<EFBFBD>I<EFBFBD>6<>M<EFBFBD>%<25>+<2B>+<2B>I<EFBFBD>6<>L<EFBFBD><19>H<EFBFBD><1F>N<EFBFBD>(<28><19>3<> <0B><01><16>x<EFBFBD>/<2F>0<>1<EFBFBD>|<7C>3C<33>C<><1C>O<EFBFBD>O<EFBFBD>H<EFBFBD>t<EFBFBD>O<EFBFBD>4<>"<22>)<29>)<29>!<21>a<EFBFBD>%<25>0<> 4<>
<18><15> <09>#<23>h<EFBFBD>-<2D><1F>0J<30>K<>L<><15>(<28>*<2A>3<<3C>S<EFBFBD><1E>=Z<>3[<5B>/<2F>A<EFBFBD>/<2F> <09><18>2<EFBFBD>v<EFBFBD><1D><08><19> <0B>2<EFBFBD>k<EFBFBD>#<23>5F<35>l<EFBFBD>S<>T<><1A>b<EFBFBD><17><1D>
<EFBFBD>3<EFBFBD>x<EFBFBD>=<3D>2<EFBFBD>+=<3D>*><3E>n<EFBFBD>M<>N<> 4\<01>AE<01>@Q<>@Q<>R<>@Q<><13><EFBFBD><EFBFBD>|<7C>4<>@Q<> <0B>R<><1D>k<EFBFBD>*<2A><0F> <0A>!<21>&<26><1F>"9<>!:<3A>;<3B><<3C>$<24>E<EFBFBD><1F>%<25>%<25>e<EFBFBD>,<2C>E<EFBFBD> <11>J<EFBFBD>u<EFBFBD>g<EFBFBD>R<EFBFBD><05>w<EFBFBD>h<EFBFBD>7<> 8<>%<25>
FJ<01>EV<45>EV<45>W<>EV<45>c<EFBFBD><EFBFBD><EFBFBD>'8<>9<>EV<45> <0B>W<> <0E>s<EFBFBD>;<3B><1F> <20>3<EFBFBD>{<7B>#3<> 3<><1C>[<5B>)<29>C<EFBFBD><03>K<EFBFBD>0@<40>,A<>A<>J<EFBFBD> <11>I<EFBFBD>j<EFBFBD>\<5C>)N<>O<> P<><16><08><16>q<EFBFBD>#<23>k<EFBFBD>*<2A>+<2B>A<EFBFBD>#<23>A<EFBFBD>a<EFBFBD>C<EFBFBD>(<28>1<EFBFBD>,<2C><03>3<>H<EFBFBD><1A>1<EFBFBD>~<7E><18>)<29><18><0F><0F><11>Q<EFBFBD><15> <0B>A<EFBFBD>a<EFBFBD>C<EFBFBD>(8<>+<2B>a<EFBFBD>.<2E> I<>J<>,<2C>
<14> <11>I<EFBFBD>c<EFBFBD>(<28>m<EFBFBD>_<EFBFBD>,K<>L<> M<> <11>)<29> +<2B>.7<EFBFBD><08>.A<>*<2A><01>*<2A>I<EFBFBD>t<EFBFBD>T<EFBFBD><14>r<EFBFBD>6<EFBFBD><19>H<EFBFBD>Y<EFBFBD>K<EFBFBD>{<7B>D<EFBFBD>1<EFBFBD>H<EFBFBD><03>;K<>:L<>F<EFBFBD>SW<53>RX<52>Y<>Z<><16>"<22>W<EFBFBD><19>J<EFBFBD>s<EFBFBD>8<EFBFBD>}<7D>r<EFBFBD>'9<>&:<3A>*<2A>E<>F<> /B<01> <14><>kB<01><>[<5B><><S<01><>Xs<00>P<04>%P<04>P <04> P%c<00><><00>[S5 [S5 URVs/sHoRSPM nn[U5n[S[ UR535 [S5 UH&nUR U5n[SUSUS35 M( URVs/sHoRSS :XdMUPM nn[ U5S
:<3A>a<>UVs/sHoR PM nn[[ U5S
-
5Vs/sHo<>US
-Xx-
PM n n[S 5 [S [ U535 [S [R"U 5S-SS35 [S[U 5S-SS35 [S[U 5S-SS35 [S[R"U 5S-SS35 ggs snfs snfs snfs snf)zAnalyze PTP packet statisticsz
PTP Statistics:rror<>zMessage type distribution:r<>r<>rr`r z
Sync message analysis:z Count: z Average interval: r<>r<>rz Min interval: z Max interval: z Std deviation: N) r<>r<>rXr r>r<>rr?r<>r<>r@r<>r)
rr<>r<><00> unique_typesr<73>r<><00> sync_packets<74>
sync_timesr<EFBFBD><00>sync_intervalss
rr<><00>$PcapAnalyzer._analyze_ptp_statistics<63>s<><00><00> <0A>!<21>"<22> <0A>h<EFBFBD><0F>@D<01>?O<>?O<>P<>?O<><03>^<5E>^<5E>N<EFBFBD>3<>?O<> <09>P<><1A>9<EFBFBD>~<7E> <0C> <0A>#<23>C<EFBFBD><04>(8<>(8<>$9<>#:<3A>;<3B><<3C> <0A>*<2A>+<2B>$<24>H<EFBFBD><1D>O<EFBFBD>O<EFBFBD>H<EFBFBD>-<2D>E<EFBFBD> <11>B<EFBFBD>x<EFBFBD>j<EFBFBD><02>5<EFBFBD>'<27><18>2<> 3<>%<25>
(,<2C>'7<>'7<>d<>'7<><03>><3E>><3E>.<2E>;Y<>]c<>;c<><03>'7<> <0C>d<> <0E>|<7C> <1C>q<EFBFBD> <20>3?<3F>@<40><<3C>C<EFBFBD>-<2D>-<2D><<3C>J<EFBFBD>@<40>GL<47>S<EFBFBD>Q[<5B>_<EFBFBD>]^<5E>M^<5E>G_<47>`<60>G_<47>!<21><11>1<EFBFBD><13>o<EFBFBD>
<EFBFBD> <0A>=<3D>G_<47>N<EFBFBD>`<60> <11>,<2C> .<2E> <11>I<EFBFBD>c<EFBFBD>,<2C>/<2F>0<>1<> 2<> <11>(<28><1A><1F><1F><1E>)H<><14>)M<>c<EFBFBD>(R<>RU<52>V<> W<> <11>$<24>S<EFBFBD><1E>%8<><14>%=<3D>c<EFBFBD>$B<>#<23>F<> G<> <11>$<24>S<EFBFBD><1E>%8<><14>%=<3D>c<EFBFBD>$B<>#<23>F<> G<> <11>%<25>j<EFBFBD>&6<>&6<>~<7E>&F<>t<EFBFBD>&K<>C<EFBFBD>%P<>PS<50>T<> U<> !<21><>Q<01><>e<01><>@<40><>`s<00>G<04>0G<04>
G<04>%G!<04>G&)r<>r<>r<>N)rHrIrJrKrLrNrr<>r<>r<>r<>r<>r<>rr<>r<>rQrRrrr~r~<00>sG<00><00>,<2C>/<2F>#<23>/<2F>
<<3C>*6<>:<?<3F>|)<29>BAK<01>F)<29>:
+<2B>BG<01>HVrr~c<00>4<00>[R"SS9nURSSS9 URSSSS 9 URS
SS S 9 URS SS S 9 URSSSS 9 URSSSS 9 UR5n[ UR
5nUR 5 UR(dBUR(dUR5 UR(dUR5 UR(ddUR(dSUR(dBUR(dUR5 UR(dUR5 UR(dUR!5 gg)Nz/Analyze PCAP files with Chapter 10 and PTP data)<01> descriptionr<6E>zPath to PCAP file)<01>helpz --ch10-only<6C>
store_truezShow only Chapter 10 analysis)<02>actionr&z
--ptp-onlyzShow only PTP analysisz --stats-onlyzShow only statistical analysisz--summary-onlyzShow only summary informationz --no-tableszSkip detailed packet tables)<11>argparse<73>ArgumentParser<65> add_argument<6E>
parse_argsr~r<>r<><00>
stats_only<EFBFBD>ptp_onlyr<79><00> ch10_onlyr<79><00> summary_only<6C> no_tablesr<73>r<>r)<03>parser<65>args<67>analyzers r<00>mainr5<00>sF<00><00> <15> $<24> $<24>1b<31> c<>F<EFBFBD>
<EFBFBD><17><17> <0B>*=<3D><17>><3E>
<EFBFBD><17><17> <0A>l<EFBFBD>A`<60><17>a<>
<EFBFBD><17><17> <0C>\<5C>@X<><17>Y<>
<EFBFBD><17><17><0E>|<7C>Bb<42><17>c<>
<EFBFBD><17><17>(<28><1C>Dc<44><17>d<>
<EFBFBD><17><17> <0A>l<EFBFBD>A^<5E><17>_<> <11> <1C> <1C> <1E>D<EFBFBD><1B>D<EFBFBD>N<EFBFBD>N<EFBFBD>+<2B>H<EFBFBD> <0C><14><14><16> <10>?<3F>?<3F><13>}<7D>}<7D> <14> )<29> )<29> +<2B><13>~<7E>~<7E> <14> (<28> (<28> *<2A> <10>?<3F>?<3F>4<EFBFBD>#4<>#4<>T<EFBFBD>^<5E>^<5E><13>}<7D>}<7D> <14> '<27> '<27> )<29><13>~<7E>~<7E> <14> &<26> &<26> (<28> <10> <1C> <1C><10>%<25>%<25>'<27> r<00>__main__)rLrA<00>socketr<00>typingrrrrr)r<><00> scapy.all<6C>allr<6C><00>scapy.layers.inetrr <00>scapy.layers.l2r
<00> ImportErrorr<72><00>exit<69>pandasr<73><00>numpy<70>npr rTr~r5rHrRrr<00><module>rBs<><00><01><04>
<0E> <0A><1D>.<2E>.<2E><0F><11> <0C><1D>)<29>%<25>
 <0C><17>
 <0C><16> @<18>@<18>F.<18>.<18>bcV<01>cV<01>L (<28>B <0C>z<EFBFBD><19><08>F<EFBFBD><1A><>Y<13> <0C> <09>
K<EFBFBD>L<><08><11>G<EFBFBD> <0C><> <13> <0C> <09>
M<EFBFBD>N<><08><11>G<EFBFBD> <0C><> <13> <0C> <09>
K<EFBFBD>L<><08><11>G<EFBFBD> <0C>s4<00>A4<00>B<00>B,<00>4B <03> B <03>B)<03>(B)<03>,C<03>C