From cc132ada64677a289a86e09ddf2d8a66dfd82c31 Mon Sep 17 00:00:00 2001 From: Pralhad322 Date: Sun, 11 May 2025 15:27:14 +0530 Subject: [PATCH] first commit --- exercises/basic/Makefile | 2 +- exercises/basic/analysis/fct_cdf.png | Bin 0 -> 92375 bytes .../basic/analysis/flow_completion.statistics | 89 ++ .../analysis/flow_completion_ct.statistics | 89 ++ .../basic/analysis/throughput.statistics | 60 + .../basic/analysis/throughput_boxplot.png | Bin 0 -> 47375 bytes exercises/basic/analysis/throughput_cdf.png | Bin 0 -> 97087 bytes .../basic/analysis/throughput_vs_flowsize.png | Bin 0 -> 61193 bytes exercises/basic/analyze_fct.py | 150 ++ .../basic/analyze_flow_completion_time.py | 127 ++ exercises/basic/analyze_flow_stats.py | 414 ++++++ exercises/basic/analyze_iperf_json_results.py | 214 +++ exercises/basic/analyze_throughput.py | 163 +++ exercises/basic/basic.p4 | 252 +++- exercises/basic/calculate_data_transfer.py | 266 ++++ exercises/basic/cleanup_p4.py | 103 ++ exercises/basic/flow_analysis.csv | 73 + exercises/basic/flow_mapping_info.csv | 73 + exercises/basic/json_to_csv.py | 30 + exercises/basic/parse_throughput.py | 301 ++++ exercises/basic/plot_per_flow_throughput.py | 134 ++ exercises/basic/pod-topo/s1-runtime.json | 22 - exercises/basic/pod-topo/topology.json | 49 - exercises/basic/receive.py | 57 +- exercises/basic/s1-runtime.json | 1062 ++++++++++++++ exercises/basic/s2-runtime.json | 1062 ++++++++++++++ exercises/basic/s3-runtime.json | 1062 ++++++++++++++ exercises/basic/s4-runtime.json | 1062 ++++++++++++++ exercises/basic/s5-runtime.json | 1062 ++++++++++++++ exercises/basic/s6-runtime.json | 1062 ++++++++++++++ exercises/basic/s7-runtime.json | 1062 ++++++++++++++ exercises/basic/s8-runtime.json | 1062 ++++++++++++++ exercises/basic/s9-runtime.json | 1062 ++++++++++++++ exercises/basic/send.py | 173 ++- exercises/basic/solution/CT-tos.p4 | 298 ++++ exercises/basic/solution/SP_tos.p4 | 283 ++++ exercises/basic/solution/basic.p4 | 92 +- exercises/basic/ss1-runtime.json | 897 ++++++++++++ exercises/basic/ss2-runtime.json | 897 ++++++++++++ exercises/basic/ss3-runtime.json | 897 ++++++++++++ exercises/basic/ss4-runtime.json | 897 ++++++++++++ exercises/basic/throughput_data.csv | 73 + exercises/basic/throughput_vs_time.png | Bin 0 -> 33431 bytes exercises/basic/topology.json | 462 +++++++ exercises/basic/triangle-topo/s1-runtime.json | 76 +- exercises/basic/triangle-topo/s2-runtime.json | 78 +- exercises/basic/triangle-topo/topology.json | 79 +- exercises/qos/qos.p4 | 109 +- exercises/qos/switch_queue_debug.log | 1231 +++++++++++++++++ utils/Makefile | 2 +- utils/p4runtime_lib/bmv2.py | 15 +- utils/p4runtime_lib/custom_pb/__init__.py | 1 + utils/p4runtime_lib/custom_pb/p4config_pb2.py | 35 + utils/p4runtime_switch.py | 8 + utils/run_exercise.py | 6 + utils/run_sim.py | 248 ++++ utils/run_sim_ex.py | 90 ++ utils/user_externs_pifo/Makefile | 14 + utils/user_externs_pifo/pifo.cpp | 46 + utils/user_externs_pifo/pifo.h | 787 +++++++++++ utils/user_externs_pifo/pifo.so | Bin 0 -> 3159912 bytes 61 files changed, 19764 insertions(+), 256 deletions(-) create mode 100644 exercises/basic/analysis/fct_cdf.png create mode 100644 exercises/basic/analysis/flow_completion.statistics create mode 100644 exercises/basic/analysis/flow_completion_ct.statistics create mode 100644 exercises/basic/analysis/throughput.statistics create mode 100644 exercises/basic/analysis/throughput_boxplot.png create mode 100644 exercises/basic/analysis/throughput_cdf.png create mode 100644 exercises/basic/analysis/throughput_vs_flowsize.png create mode 100644 exercises/basic/analyze_fct.py create mode 100644 exercises/basic/analyze_flow_completion_time.py create mode 100755 exercises/basic/analyze_flow_stats.py create mode 100755 exercises/basic/analyze_iperf_json_results.py create mode 100755 exercises/basic/analyze_throughput.py create mode 100755 exercises/basic/calculate_data_transfer.py create mode 100755 exercises/basic/cleanup_p4.py create mode 100644 exercises/basic/flow_analysis.csv create mode 100644 exercises/basic/flow_mapping_info.csv create mode 100644 exercises/basic/json_to_csv.py create mode 100755 exercises/basic/parse_throughput.py create mode 100644 exercises/basic/plot_per_flow_throughput.py create mode 100644 exercises/basic/s1-runtime.json create mode 100644 exercises/basic/s2-runtime.json create mode 100644 exercises/basic/s3-runtime.json create mode 100644 exercises/basic/s4-runtime.json create mode 100644 exercises/basic/s5-runtime.json create mode 100644 exercises/basic/s6-runtime.json create mode 100644 exercises/basic/s7-runtime.json create mode 100644 exercises/basic/s8-runtime.json create mode 100644 exercises/basic/s9-runtime.json create mode 100644 exercises/basic/solution/CT-tos.p4 create mode 100644 exercises/basic/solution/SP_tos.p4 create mode 100644 exercises/basic/ss1-runtime.json create mode 100644 exercises/basic/ss2-runtime.json create mode 100644 exercises/basic/ss3-runtime.json create mode 100644 exercises/basic/ss4-runtime.json create mode 100644 exercises/basic/throughput_data.csv create mode 100644 exercises/basic/throughput_vs_time.png create mode 100644 exercises/basic/topology.json create mode 100644 exercises/qos/switch_queue_debug.log create mode 100644 utils/p4runtime_lib/custom_pb/__init__.py create mode 100644 utils/p4runtime_lib/custom_pb/p4config_pb2.py create mode 100644 utils/run_sim.py create mode 100644 utils/run_sim_ex.py create mode 100644 utils/user_externs_pifo/Makefile create mode 100644 utils/user_externs_pifo/pifo.cpp create mode 100644 utils/user_externs_pifo/pifo.h create mode 100755 utils/user_externs_pifo/pifo.so diff --git a/exercises/basic/Makefile b/exercises/basic/Makefile index da31be2f..fa1b0bc8 100644 --- a/exercises/basic/Makefile +++ b/exercises/basic/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 BMV2_SWITCH_EXE = simple_switch_grpc -TOPO = pod-topo/topology.json +# TOPO = triangle-topo/topology.json include ../../utils/Makefile diff --git a/exercises/basic/analysis/fct_cdf.png b/exercises/basic/analysis/fct_cdf.png new file mode 100644 index 0000000000000000000000000000000000000000..81256c78f1f49cc192b6a31066981ab13a5fda92 GIT binary patch literal 92375 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 literal 0 HcmV?d00001 diff --git a/exercises/basic/analysis/throughput_cdf.png b/exercises/basic/analysis/throughput_cdf.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1c893ba26865b14547576c8ab1f91ca02229a3 GIT binary patch literal 97087 zcmd43by!t>*DVZ6NT~?Y-GX!}ih$Cgf^?U3NjD;>Aky6+pmcYm0#YJMZ)uSR>4r0x z&;7jTIp=-PAK!o9b=};Gd+)W^ujU+cj4@a6c(XlMj-vXUxjXcrgJ&@O0R z!h(Oo7~IX*>GGIDmXv3ItyG^TTX>gZ%?Z^zHY%frQUlg`4~ z*}+MKo7?uk-oa(>XwDtusObn-!Eun)azaD9Vubvl=Zbx>L_?J6C?g+P|f{o;&_jNFD?Vm%k-LQSm(wi6qU)p}RV>uuE>nm4XJew>{p zZs8vxF3ae{(lvN|Y!W5MB5K6KPd?ed-5cH8w9&NRn^NcY+pFKBKT&(j0^ta zbbtS7&H18d`~06@{`Cj_H_ZQfS)9%RFHoHHKR-Zl^@85NKKrk?3yWWJ{`b|8fBA{_ ze_i0>|8Fkv;7ecM{LxAYtAGG;qGHF^d=Iy0`m<-x6w~jW&W1V>&UJ==u%Bu!7Rr*k zd%Rll#gvarw|3g<$!N7LC12uOTU2%3cnrz2-@W9feB=e{MUGWBkeOPXzU0pZvuXD+ z@5zUQ3fX&a^$o3G@?Jm}I9+%}oPm|yM=~KC!RkYg+{cZ_* z@$3uz=?i1#>GRWV0mVY?VViTE!pr+6ondw3jh^1eYc+2vg~Nh^E_r)<%gV}5cTn1! zetJbvEJRQ`N#=Dh^LlBhfb`zIdk05Hd=}s6^xbDL--LwdG_?p?58wLrI|*6F@mJr6 zu#j~}Yd$~ova6lJ8nhC0TKJj+6GVoO<+?iB#u$G0V@ zTI4d}G%&R-znb?WwpMsm6jw--Ft>lT7SLQGnpqZbQx zhH>fDm)eY#d-h~yW$76z%{3k^7u?Kx(umVRB7AQ&68jeP++u9HhCSkoF9w9eUb{LRT9wDI>JKMq$6&gJ2nH*VZ;ULNeKwww9*GCL<{^K^d-W&5Mf z$sD+2y ze}8?V=f@+lKKO;oF8SeyPa`8Ena9MpUbVK0fAA%t_U|$^?uueYCX?XJ&&I~PsB_p< z_Vycl0^zf>#>Gv0+Qhh+*q5m?G)nYcR}8#2r6#>Lnp~^$LcQ$ApCbX`pAHx4 z>FEy+4tTr|92zLG-~ilbiKdskc7E9JXS38DX4)A>jZZB?Y;SLW?b@}2gSqgvVGY!u z?S3&Q*dj!Pgc9*wdNwOl-rGt?J4*rDMJysBNiXq8hZW94Lqe>1s(eolHs8{UP1rU;bIqQ80bt&UyY%fiB&s3ZI4LoA3K z>3(OHI(t*+XQc28tfzTRNp?2V*;agufM+3m&0}rt?p)<83SC-4LZjoBb*ddJKcOAi zx)rGYaIv#53A`qMc6ZySrqV5cynpuVOQhLUh})#cYxs^cn9O0K1+>V>$h(KXqN^8H zMoP@bD=j5uWU|x?mWGQc72F&s`{&|w1HGF3EXI;hEz6uiMaR?=lv_QJORx=e9 z5z+c3l9Aif0Is3ywN~Z*rwu#%{rm499?_!eySuwRF&kI0M=O3z2^-Z&B=fMIHdU=SvreQ8*=*Y{dDT*_1H39uV3K`qZRwAW8c&c z3wy9TVxW^6SNLNo;np*Tv9YnAe&?r>Qc`7ReH7Jp6XVkd@7^)If0)`0%h?$!Jo!b# zz^C0LTvWQn_q2Aan`5n``Cv8#QUZbEePseY#`2E^B|kJ-KHP2_)lXT3H6VhZYdE2_f$3hTp^Qlgik zMncIeJ|s;|O`F@>*3QXl1?taMifZ^wzg&&u)RDHc+oE|aon{V~Mh=Ga8>$zhA zDX8US3-9!JAKUPFZ|%#xBgAAQl!mYGJvfJRXrMOm_wV0N z^3fY&VrJfi%reT!!Np}Z@J`D0;~6sFFt>_{d@tkmJ%hKl949?jIHkjB`us0qF9#ov zdvEs%!$`+=j9tk)3+q0add6B4>>-$q4U!-+8KO&FN9H8wHHfwL!Ae+Ks$k7jv# zv|IgDJRm%lLqo`;5Szwb{6h8`ss{cNsdEUjg4-1-__kxtFm>cV&L?k^7&#AC?n)Yw&_ zNFwf?9hji_n)JD)q@?63%=*eXQS~kb7_zB%+~VXF6l{B14rcLiA^>X)SlvnXvR~Qi zx6@mwwITVh9+x*|2~iskLc{} zx18&3ZEi-gb8y)9z#d^~@8}q&Jcj)&>sa@5U7JoWYG)5+ukd_lrKCkZib)R6Ml{-z zKQ>J%rLf&F$8T~}c_P2LyuQBvcYtg*JzvwsxDSty6(ICfaaymQ#4*WfH@cT0 zs|mA(Du*;Hm!~>TtpJfv1ec*50l>PlmXFE8(MMFX$r{<^J(IM>~~DG-+&Ar*R>Y}C$OCdPfa zb_mlO*k(8lw=2#Sj|#=RbSYQ3riIyNwABA=>K!L!IpaLMyqr3z-2`q;_V@SOHCM&Q zlfqZoemkpkS{U~sfivnU;u>2!a^m2oqsu zU@i#BYX(BL$xy!9&iVx9^S)%^C%U@5t78>)4l^&-G9R;%3E607k&_R_#Kl!F*DK$- zm{nN#7IG>Q2D*ECbW}yp0b4TNxDl-1_zT5{9S(Aoxaw`&DrGD8V{W`N&5 zL$sBXl`ZAm7|bI=0N5SZ)lxm$f;=zZfZY_xjo!OM8r4rBklbd8?pj-+f^;VFAc)uv zf`tP;Iy$Q#Omne1n+wo z5;n84g39kVHu1$+gg~KpbOfNn9iYFQg2LQj-V?}FfGLfL*4=(S!-hpOAIw#D6}F`? z*;^g!O%qN2{$0g&ZM;2Stw6KFi~y3I;Oi^2cGb6jz9OJ>2b`_h=+65$&WL$zF+EqB z9?m%$|3(J0QdDn8b=xtJHQhTZCML%7V-3Xrv9(8Oce@|};9R+4@8IJy(D?Q({x3(5 zCa1FX!^rgXM;;y?0r!;T6-m>!6u)BKQp0e z(Fnf&`md6Ti;0fz`QoC*W!ihIr9SE#Jx_d7hC>t77zH0=Y#5Js2&#{MwGk4wdZ1tt zddk_RE#IuFsBSqtCpGXcQ#&TObZL64hkF5jWO7tC2V`i=tVg&yLMcZUg_f3#NedOfVi>OHQwj;|YVkR8uY_np>%-rn&PZ8<-? zW8b*>>c<)(Y*BMMjQYR$9m41Kdc#IJpy3cM3kcwcP}(kyR~2w}`|y75=x_uy?b%cC z1X7&|_Yv9G?D1wOa8Wq}6!=(By{ut8b#QQK>RvYty)-;2BqS6!IH(G7n5YB*7pbki zi)s~xT$HSWLdEsF)}g7kMcIB^zvLQZpF&MV64G95n0P;P`hBvUF&yQ_o$m^TIyJ>@ zJ0>#9sBjm?ubttvHOEvPpFdwEBKidJ;kM6FrLE`Z(J~V)Kn<`8%w`pdWhR}~V`*&x z*xNA4k*TQ@iwSSu;1)Nmi@bR8LbJiuw#mW=jsluBZ+-R8(OM|)#_F6{kpz<{>g5`3 z0uWzXLIV99ipN!bH&0K`rm|2UyLy+E4kSEf%S9)h*g$$PF4L5K^r)t%BiG9}@bzn` z3x6!`N^!;4XzrZvmiRpd2vn%oFgzUIoQHe*ck>0^{#TJl7)O+x0#*5%*`fhwb;y0EVdv81^lv)p`mgFeQ;$GU3AoSMNb2RZ&qHZSty7%D6(tg9dfM*~a|Wcg^6qW^va0o@~lw%)}g9k=)d54JKkefc=GY`EqfMZ+FZMAU8@OkiC^Q zY1%zJJX9L5F>Jelq#YmuKEs=ri~4(dDx}s5>{ABsVdG<6gh81#t-)+kDtfeRc2IV8 zcU%2&(pOeCT1k4WH}Y=1842BN#JI(^v$(@02KK@}3{WcoCBfslvuO6?qyPsGZw?@) z>F)B7H&6tMsUoqZrKKdc9KgM-zY5C01GXXrsgSIP3un0f4)NsV;MXt z131$wyG>uayN%%@&jqd0ps0j8SnlD&%U48quKK}NqBceWQ2IJvWnBlbzYbRN5)RHx zR`@*zQPI@%v;7v%q)#jIA3uH4f(Y3!x=;1w!^8O`>*AS%&AGP2gNEANaXi0yVDzXX4b^JGjL2qbeM8s7Db{Ex5 z$^-20iRb>{wZHC)xu|Vr4jbkYF77Ohqho4{7K&X6)x*p!~y zIMyw_PhQ@=_vqon_rTXw&l+9CzHGC-Vs|-KzFmR4=`&ou8^Th8s8@ASpEeLvSMD8T zOdRl9pSW7HrnnU9=8FGn?jIAMg@QyKyfdew$Wyv zJN)KfnQq^%YqN!5<%NJ%v%aKuq)gVZZ|(07hm-|ncPmnh!8RqkX^Ajf$PVLW7^Z(i2o?9*`F@p-y8*t}M&C=(9s`-G6>owy?ilY$j zW<$Uy_%wGDpp4|T9=;jJZSYV+!XGAMS1E9Op%ah0vGsRfGP$Uy03c*x`J5=I&#{~I z`vH6W%=TO6b6eNd>8WE@h^w^HK>!1Xu7zb9rRAnZnw%~_{sZj`oyTQgLyS29$ z_v$h=J5dhM-RI*1{8VX#1hTP{aM4k&}~dTtZUfYyg7 z_s6YEb){y7SSFr6mvwQPNqFu#1s$MfM1S1_%0gSO`0FbHMh? z)aFnPx)v4YquvzhHK-$Cn3#}|-co=9`KXGtv~=>CZi{czV1t`IAY&nvV^Mvdwv|=B zGtdPJXJ=yg!ynm%no*d28-DJeJehOBNd zF-g|L*~x)iHiS9@F5wy-Gc)rTr{By=QYLZF<-89`RX;2Qu~5r(s6wodKLWVC z!NXHJ&|iR5vKXdOgB|RGkfdO%+1xZ}P67HZ0%mOhAcMMXgDpykMKPfjLYigB1y>9x z2iqXwe1YRfQCQ7=Rn_Uwv_w>Nv{sX+pzxG;#ixCHzQmxgu-|Z6e#09b4$gr4&uDVk z_$m4KD}F{mLT*@qA{eQ=nOIn=wNu;xCCtK`4S&`?yPtx$3R(5}E>@f_S4-}!w^Eti zgb0i@@s3;ZlRa)Y4{I+I0uXlmf&@n$a56!`!A8K}0(2~eco;@~r{hDq@3Pg8l(2^% z=92B3jaG(>s6?EDc2`Ck#+m$+Hz8zK*iYSqVLeyL`_)P7_xI=PoegLAJJos(uA2+# ze&wcJ*I-!5HeRgoP1NZBC=eFRu>LcUV;6u?ZMPBn0lW1c&|V7fs-6H%g46_1b0X~F zGz9QxRdN@EO@NHEnQTmigPk#C1$6BULbC_6ra2sxA(RNf$v%ionpIY@pZ5O_FZ7?` z{hcq!K$LX9|7Id&g%F)(8tY$B_FrrE&l@h1guDbUe{N$VT#?18>h^!V2x`J}*(gaM z(P7JdnJ)@|jpu(kMa*w&T__OH3iP|_`|CU*LkYy@mQUK>V+n9C=>K-U$o*t zebO+F;ZG#1sObFvz6L%(%psOrp^*3KqPuRn|Di)eRogybiPpO|wA^P_QJ{47mOt=q z8p(7H7ykFg`>z39UF-whW7-PYL%q9uiunaIcz5ysk1d4ksC~)*E-og|09y~kBW(x# zLk0;N&T!zXSA0H4&H$z6ttxcG($mxb-T)AUb;ww*{@+{FHAV0y+`O2dZ5X7g-49e=iD*>)#3bA1)eGEYv!| zo2a-Or$*Mdu@L_sx$g!p`Nw8=A@HMTkth@UyV1nYEiR-F_MKGu@D(kfV z_e13J=qJ~UGsv6{fFg;gsY4Z6On@rwv#Wp@k9CLN@0-_CbEtKA0`C|lz7T*+%DTq#HN z-1I8uK#EHgvZcTyxj7B-^Jz~U=TAVjAaw=bc=BGiQgmi!W|y7HN)=Znz2(5C1~XKC zAb%5K63WWT8uur?K(a7_@)lLYjTO))N8*aF${zc726J=S{$Kk7g|h>6VHEt7x6e)a z9^1~&&3V8gpvlV18^gA4JUd#sOt=UoDik22oY7sTMe_V^*D*0MslE?GLkj2V%x8vppg1BO#zA^76E}60EY3f<02CiyP#rNx2izG zJw&eYms?pfx6jt;BbY>{1Y&|RH;aYj=>A+{lKW^8$CJ=&K@hw6*0Y-+7XG42wi`pa ztD3MAL&=dRK#|L{GC)b7nzXB$v_qyCn-Hq4$iiusMN&~m)urp-uA;U3%_I_Elj)+_ zTTLF5wm@>c8fMPfW!`PQQ<7Vum$|<=IXVWteOswRLQXCR{3Jj@3xOn06e2||qd=E&3)mF1EomK)AZ>1SoqVpy-W947o&&&X6X;Kpu?vfI2kyIeb z5fRV>5u9NYKr)5e`Gs6Gi!u~_6&3H^T_{qw_EOR=BFRw+uBj0=s~A%k{|KCBwE_Ht ze9k*~2U?YOXuEM)=WlC$ZXr!$$V@mKtbu^P9zF{;`RyFl$c_bz_wjGp5G%^uqHYk%n z8}eKwCYA(w@|O1j4;l^*j;gx4ry!kx>|t|V?2g;|+xU1=;E~XF zRz|`r%=@8;dJAV6kRXtt*ro3uA08czYoF|{Pb8g( zaoQckL2gnRDxFE=5E6p1EPhX3GAzhR|_!TJc)|c{WhTGzrIZUuCb8{Sej8I$CZJK_>r_;(L8d1rCWcufyX#)M#!pE@^H5gy5|C%u z88E9L8UlF=2+?HmTjnaN=1O#zB)klDUiE$h1b?^}lzDZQ0V6Dy?S_$;9wQ70Zh~;+ z601HV93Puzs}k$a$XRz?O<1Fdyh`+78Jm`2YK!Rjmwd;*=JT45uSE?`!sSj$-&jjh z78CmW`&W<5b+s`5+@*MS@>%YULY2FR^&&-l>zUYD#zz|l9)TeFkjUQE?L|)Mk68>| z-97Is?}tcn&CpV{)}`FUCn1urx)$B5m{*MvZF)aPIg@k5_--Wyo*6Ma`Mf8!nIfIA zN!!~lWATqcOf__J(oBgsIE;LWIQg`W*lw?)(BI_CFs9r+#r_@nTgZSh<@C<1af4JB zlQ5S##Cn8)O1$l4mSqBrP#eNw%(jQv_V^ymV1p7QjgZV2nldkWg8U7$kQe{ecX{vz zP*0%W0je=L3At8_>Dfe6rM+gwZv!VhDlLuco;j%;xD6m>6$?F>Hv9+oeU9}NG&6s) z(@sk4cX+*imci96BvUtQ_Eqg`^u?V)9^z(wuCk&mr@WMsD5gwdEuJJ!GDQ-6HNRbH z{_8A^^RMKcJCZIv%jq%SC5W`NZ$}Xm=fA)4=IC`DeNAFaHGN-aK zrnR*dtLmx3;vd2thy$q9F)NT0a4uc4c$^X-_yVQ!%oQvwLQQ2C_B$*D>SM)8Z@o%M zNl}=^{+#pbA0S&Y&c`qW{?Ym-OvNxGMeS3#ZkrqT5dbzYlt>DRXRYeiISq*BDoxeGSt7;# zsdAVe-01of)fz%UzsjlgSi!83lVvapvxMDfRgF2x_MB0$x!8Z6-85IV+1=wXQ~fwg z9Xn$SSA3lsZ4y0W58LJWuF?L_mSvBjbNNlLMlNdojBqmE7qq?yZFXY_1H@|_7;^L4 zKUK*sA}7lm%qzoBDqT5W$Pk*rKs+S*x@&!|mvHserfiW}<@ZeG zt#>ru-@oxBGeYOwvx_)4a)vW{hQOV1CKNN&w2hLVB7{8DRMLcZ)>dfRWO&YYI7>)< z+BUxxmHWW9&_Y#!L&y5g^LX0a)4bB$Zx~XQ_aBdV7H|10?4&pf*|C1B(k`-nNUVv< zrM~MP0sN$~u`!|!X=!PBpKNxbA@mxk+5s}OJ~1e}hR~Q8Vz5f!A-1vCqd!Uv#87uB z{1>KIR#p(SZ}=sG{y!_M&ttwtcU|AU6STf@xTlkyKQ82GU~s{_myVw+Y06hKoJlK! z!{pE9##cu1`yW#rNu(mSvz()t#)1t3#$F6C8Sx}rOO|#Sa~3`oGU3t66-dexAcy~Q zdDK;usjmxB~9bf{ueSN|XdM{S-x#*tfc)OZtO=q?mANT zm!!-2=R@*>lepZ2@+;>_%dflf>~km#VudNV1)Jps?>XL{jKbkIVb*84sNaFB+9BVF zKhH)W@-6;(Gd{aQk>9SGAIEk5xPyK~{oR;g z8fafQW6jgO3NqB0RyA~%cc-u!ZU6|0=|bEAE-{wtkH;DS4}7!$|?Af zZT-2FrfDoF({sHv$85b6nQyErhLg~p>*nVMLYMiROgCRvy}5T^LD@G zHrk>*#saHwtL}%!f5eN`eW^SAQNx6Hgs`^?)7f%p+ncSRsk!pZy`uThq>4DPF>$fd z`g>cu%c$tHJO1~4Pu!F8b!x1J^08|2irtqj@Ua4}F46?G&o;LUV%UCg-IVcP_;>Lf zdN^dmYf`Ez;~%QFG;rkEUvMs*K#<_%h;y*%_Ck2=ftqpA8yn>>UF1{>ZvVF7m*IGr(fnO{Li4?mkcdMBt{hDcj>Ojrk0ph6s(hRn-WMVd>)U+lE{#xUL>)P4o#@aFSh+ zA}5|xM3*ycC3p%e&|&TT`j*+&Cq2oEg#tMP<~Rk4V141Z%lhU%4LJeAjJeh&Zcoy0 zU3f&Q8_{(NYffD&Z%l?D8BLtIoW7zM}r)hW9_Hs$3O`q`X$r` zmy21#^@`8C`-{m$xUEw%+@?n1o!ne5<3yIqBJSik_4j3qYO{Z|i4y+3E#Ml6SRV$l z)&D()2s?osLojXJ7Q=k>ZT+8ndr)=D@99sDUuj>TinpM1K1{XCU)1@dRIx;pE^eWY z(~{0*I#PCFFYN|H`5%nJa4SgggGl|=Eg zbFj?yX$eeYW}LV4p}1Bu9|CG_70$FRO{WFbUT$E$|6e>MS5l_(gWHK-Q9U2ItsR<} z1B$ZxDQz<|lzOZ`D$+B=DuqRQ%o?QaI*KzWI6gipjSa&4x8aW-K&QeMeIY?2}(r zIRQ1&kA-O7Qm~CPt{ody6B0F+(9HI+-x4Ot9o2eot^VPF4G!ogBgk zD}YKzl_Sb8;y(p*LL_K4LEwW%pxH0(7ovI4(N*a`egb10@@32Rs4`E zMw;GipNQ@UZ%1#QzBy;)-@RhWcYAJOqV4&OABXFqV&6!XaqvfYJbbV5)%j>w){U|U zUiY^$C5^qTFZlaf@nx>Be_3ErLRdz?mhDtKA+3fy4xb2wd5k|_x(9-b=SrU$KUj*u z?fwP`o={M=e}7F4k{*Z%cmL_A8T2sFx31A za1vg>Gi1G)`m2_7N>QYiRUMmj;V%~t6s&J>#>fg{8~~F8XM215&KfEn@m+$C|039h z+C=w%egbKPhYbI7d;2D6-VQ@*8p^7wpOF`!)B(Q=Q2#IeK)P`KSi=im&)XR@XS-<0 zLbeQog0bnoN5Nmd$Rf3M6tjXm82#M$#>^2D0%*r9_wJ>E&6eOfIF=C?KiK3ZGsOK4 z=i@zoCz>CuR`l0`4{>c6WI3oHk#AZV4h7jI1&Fl>u=2ROyK_t`|0TM(sBg~CtDblS zy}5XNW6JOOn*i*xm{@e4V$TT0SKxoYFBAHa^^i}XiAeb+wqZV-QD>xcwavrK?AqtI zv@lO&uj9XsiKfb9Qq&6W&3GBj>`*IhXntK=Gd)uFrPj-ImHw)Mh`wstz;`oUV345HW=cVThL z67G0HHzGwwfYxuG?j!B&EMVYwDu~GT-!dP7rd19C9aM>kn-&b`;9DNgPZ8T4d;)*l z0%GqPFe>1Axvmzg&K(De>UV&&42+E6K2%Knh#YI+hY-WtziGn;U`PKz$G{+J3jD(z zplNjhQ`ng;7dpj>Flz-v<)C~4UG&hxBKLuQcxx5VJKz38Ebt}klXjM-7Ky%WtB!Sa z>SuVieQE0x>*Lh!`(|bKIcBOHUqbMV%{A#e@APQWWYepPgeacVPz`>RSh;nbCv#b1 zP1_bz)x2tC&O+`MWrdef+%HMbcwYV)d|zL5VkdI3`6)c{7OuRVRZ_g=mju!!eRrB> zO3B;*P#Sfcyc0Q)qWh0S{4o7qXuL*hcY24TCdC>>z}YjJM(q(6CeZD{D;t%VDCb-` zv<|d(0s*B^spGtS9G9NFnHdXs$KDyV_@V*lG-{iklF|#r3p!BJPQBLXj*gD2pKlv_ z=}-7Im+|K0Zv+N^hf+}xjquoX(;sA?xu|S_e}of!gETOnB+pgg7_gHeJ{njvJ~8=xQK1- zdh?`3mxu3U;w0Vk)HFxzN?hpC!rbDXHHPd)5~7oM;ADuKlugGczEX@@wHZ`k@Ba3f zYg=NDRMJ6~OkT+_YiT+vUaV!~AYdv?J8O0V`|@nQ7p>I%T*!c-*(U`r-UJs(W(+>7 zfr$*8lVeol>7~a(41ASCEvXoLLEDH*_Aku=-0(*ingX5y#|CBuQO})HonoMtBj>=Q z8{V*9AEJ~jgxJ@?Kk@XA(FT~<5humj>2clc8;*qAPAni=*zAuCP=O4w0M<^#^$$%K zm2LMHh*%V-AuJ+XE)SVI7`71u%UF|_FpwJrt7_jO9aPO;w>BZV1(#F{Mei$$OdIx^ z;Q9I&b#1)w*~|14B9d>u7aGgVi&=c8&v2L`*?&{^E_Y_$6OQhiueX);Q$qF`h3SJ{ z(9ForWFF*u zU1a0=wW`a)boKz#U9Ony>FW0HhOB_0Mu@SOAJ2Nqv_B)R8^pto zI7(n1%WTH@^u5*u5$}6(^_@nM_2V32wn0MN~1|H-AxQ|lh$vNt?BJ2E$KO$yW>FT8-SIyG!ouSaEfIW z)PHulwbj0t_&fRY865f(9~ILxmc%^rZBJ*? zD{hr>kS6MO4Bk1KrW|ZsEGAi$r~k&C6z0&3s|_OUUlfC+70AfPFZr}y%g4$;eArGn&KWUx1aGi$cYoo_DQj(fW!|2P9I zvA-PaY6BMOgM8Ees@Ss@VCN2OGq&JkpBUZl_*`9qQC0Jik~TIxHN$Sv!*&2F9t|yP zy&)lakG}rfU4|K3i^|6htX@I<8EFK6yL z{Nh#WHa((iOH<6b?WpT%{j)3aX*su8DY-+hXmD#Q>YkgTj#i&AuO7@Yp)r=MNIM%l zR2)~5^=ft(oe>f4gvjW={zt9cF}nrD?;?(!PbKgj9Q2ZixUmPPQQC+=Hm@mK;1?_5GWhtk~^?U?$GXp^i9;QRimKaZU%f$ z(_lHX|C0b}!c%~siU~aakgiINK4B$a+4U5?efxGb@jkFQ7ojt32=;yCMtLhWqI-}F z*(4xU3mHJmU(mxu=OODDvhZ*u)KFNUW}NA^#$#c&go3!C>))!2TXTU#C^DR4~fzMBVaNUC7y z8ZB+O+a2#ZoN?@|fgt%DD__Gq%34}-o}TpwDSBWNyj?wxd7)q8pvqP@DsZyUUZ}63 z?I{cO^$uLrxk%P-T?NA+MGjV|iV155rTn&?qRj|(K}5}?&x0iGFjf_HtLq~AeJgMUo`!y6Pt)?Xlv1Ffbw9kZ_6gjUF4-X&nc=Rc?Fb!n!<8R)J`J@*^hMnf6YCA%b9u6hrVkd$t`-aRQhlzAIF zT+fX@6N#VtO!SmhDNp!Z)YgCo+fM|qHQPh3=-L9>Z)4@QiAX3@5hD=d|G+{?1EAas)@ER($_qKFULfx zy}gN_|Kc!SjH7~Dz9%JKQ+`Bp!>=Vew7ti|v#>zy==;%qL<1U|xWOgxs< zV-CR#Q4guB#8^&pLcZIsL=pmUvOy-F0qXqq@WKsR@PMI5DIXi`A`>y+~ zgy;?kwG0vm6J3}fblzDh%`p1cWGB-zGG5G4X;eykrC&m-?0bcYlQZ<5&(U83dFhg` zU{YwxP+Ae;^iwrI1->r@U#uNbY*TE;7mb7Qf+~n+27Cu{f30csem~6`b!o2>d($dz zZRH`3=2&&rm^6S%E`=jMm$if2f`B0G(WUL2M+@Rd(%6P_{*~pAUAcYyfATM(efi}W zB^_$=MX=&hNU(Jz0k&}Z{Gh-0FI@5`8>=CY#8Lc2ip=T_*Zt$wT>~l>FO3*Uto()C zTQ;wtn~@iL;v#Qy>XTb?)7q8VMSnRGx6J~n@`$XSG6lI3UsKD9QrS?vK|_~PCHGFu zj7DU%IK3MF$z=j=Cviv`g~#+>-?jc z!fWyzD*J4W;u-n@Qlld24%IG^aKHSqTYAEm0z= zi&B;t)U*au!)k}uo$<$ifC#CqsbvxWO8?Xk&L)<^rvXVc+MGvCsyk3>8(%QKq*|kB zQ!7P`B5AX8KdZ`mH#+(H%3NxU^RqqNq;}J42X+Gu4nF<+%ZDn?ua1QC)o{s0vrd*M zsVzdn_TS)&&pka)wajHR-*B5M+csYYeKNR!@sb-H~LF&Aq8gTEfE38H61RG!IJSUH~k4wrv-*2u%hnY3+iHqvp=l2HucY=006~=1MdlVFI zmCoo~wmS%uPu;z{iFes3!ixJe!0}K0`V;*8;iuF|N+d#!UI}mb7>)E!$=sgwhpf+V zX&2t6dDe`0DA$9*yXFAx`;oKj{@^N@1J|S#KgQ+XAhY9B3iS?|U7}LdIf0|iDii;p znhUk}WnkW+c$EqwCb24sKz$KDIUESVNQbFnXE7DU+J|B34`0O;6J0vbfhDEI9hOQ@B9W%LijarUrU#kci@o84bzIbp#&X<8FmnuOYK?dd1v`XT1?;ClYQ&6M&lHH*7@%pZvPj z6EHfp8YOU=ajEK-2CvsM+|`L!3U1CGI}P-FJ>HMAUy?*h^X+=oJLz9(UeglYLN?-8 zDg~N3pA=A%j8sY0P)e3zhP4|v<*ap65S(b=1>c5a^auwkzy)L6H5( z<#J^*KMmz^n|jD7Jmc2SFuzpz zujZe!31(R7y^a~AUbwweq4x7pbCt0FOjx42MfLTd6*A!hxcLkrBucBQ63@@i!_z(< zIKm@6;%;i)mzT!{bOL4-rykClKc9&nO%J_DD~n=!2J~AQptk0-BWtj5Ey4h|Qb>6@Uz+Fg4dmm{I*yP)|zCDJ@G*E z@E3PQar`s=v%d8#=TFkGDrh;^&T)v6!i-1OLnb8NjTV2V{tBXfu7LKp;cM+K?UlBP znZ>QeV%0w_itP^99yby@dJo}x56MGH@h+h8wZd%HmuI-xxP%&`px&U$E_)w@3Up)1 zHh-X1tmOVA&X)U2-(F4H*ZAX#h767mm6^|X&6M9hB7E@aD;rpe?9-@~nWg0Byvd**u+cmtp~_lGA1eEpzyS7Idz4G!(J$*?gLp^piyGB^{Wfm z!0*6mqDH|XRSpgCcl^`9LI(ZLTb3UOoH7 zwR4dktI(=sQZBj2%Bl($8mE1|{(~tjFWsKVPPV1+c9b4_qb=ZC$FZ`s^Y3g0OYYKK z@{P>cvU3#cI}~JX3hbkOuaabd&PV1hh5z7vd(G(AxX016Tp0CPSEv4($^ViBh##Ht zcgD)DXPWyg&Tz4w0!$(_chBd<>l;JY;q$7gBHhXQ9`muD$6BR^=!lsgI+k2k zhR5PaNlCY-&d=hZhX82-MN9M9(?XtsfEf6Zhuxq?k>1I6QiDH0ej{x`X!nj58Iis- zK7Rfc>K~n*uR%pb{9AtscevC(i$O^%uc@i&=%km#F{9kIryYFdRiPi!7Gf6!$HEGe z#9cDfERH4Ve{_?5vwfa=>B>l8R>YnC*HY`{PZRKPAG5l$I=5Z;K+_Y=tCNkz*pGcV zolfMvw&@7rC_#{=-jFNSw$#^6dklk;dO|BHYF^vxeO2+ow}ushYvd=7?wh;3bbH8| zSyUA3sUL@8p9y6drI^_(c;kF5Gj#XlUFkuf)5#ahJ@1;ZlU{zbFW2Qg!&ARRSQj%g z)w>W@cNBjjsd(u_$v3)vO3oA#Xi%Eewe9tz&fKA3Z|a)jJK2;^g#UYaDI=JIai6?Y z2rE*y8dsgz0d;{MM1}r)$8Vt%7l~oWV=^)yyatE3DR5}e>WVxu2Ri%Yl$5HjD|JZJ_?@a&YzN&$BE@x3Djd3k80vvgF1HZo+fkf+9II}hCQJG+ZCaFPkzrA%xA zr3?-6me6Hk%UX-B$U;&qy6?*>_TLbE!~#hZp+tPYgaJ<6Kv^8U))><8>-Rv^918vKp4hf zK{YQt9;>#E@!jV9GVkoUDfNppA#UylI1cODY*^o~kT6^G+}HCe%rx_e-p+M99Wc8y zB=0ddU{TV+I7onFLmT^U^Y%EYLe-yYqVYYaCT@9m4IJA$GkTm~l7rkS2|UAWP#-7l zr*fG3lZ@VP4S)07QpHkA_V){#Q~9c})iZWt#9p_QgT{0@*!1TrO|FmX>0|WfB=5*VzGH(+t?N zLfyKk9EEt`<+~ufL2EIsVW{iKLN?OM%j2DNJ}?<{*15<<;r2dYi4D?MRDz)VDOLbs6g^ug+v9J^oc5_lVZYz9p%r z`-{hKEwul|*IPh!xpm#!h#(RIN=c`rh(St83rI;x3rMGQgM_4%0@5HNNJ=+Ihcp7x z9ZE~5-@1LydEe*%)fvNcjstM`yJPRQ*P8R1qRV|!Lzjfq-QLC*ceSlZ@^D2|Pd+av z`0>!MlVvws6)RrnSGnY^X1xVfsoQM7#B(>|MuTi5LfInu-&_fB7PGI@VyhKfr<>$% z)Dax5A)T9|hiTAI)nQ4`~_Sv&uCc0%{rg-e4 zRr-nB16{IP3&w|O?TRZB>$lwqo@SP{*NAqDINzK<{oihXUS1xqFy1-Lncnv-yVc=B ziwz7PD3j1WLO4*Cg3CI$~WPs%ZWBfI}a+(p3PkVn5@K`q|AZq_O@>Adx=ou9r(HdcOqf}MXdZ}8(Z0< zYcO0^sDwV?>SWaeSSW$Xa35|sShLk_&VaBXX<$Hy5O|;uX@rn>u)KX>auv^%;)3b} zU2&*wx{$vVXj``r8!D-Vd_N&X3vk#Xr`&r9Zx-LJd=J{ZBJLu4-%rIZ=G?=k;l#dy zOQv1Lpx{&8dBWjuw)b}SO08}9UR#12PLr{UA0I@<7B0Ogh%FUhH#^ppUoz`tb@EV) z(|#?-!1I1nhy7DsLWJUJ4pDZ@f%1)TD#2eVD;8FBI_jqCB5cxgl{L&s_RM3V8&%Ut&rOu%{=kQ?Z2}Q-osoxqU#`nOV4axvxEn*@f2`EwlDL@CxZN!}W zU0ET0z!dSP0O4yk#XV2B03_KUK~-TLD>WkkMM);yz_YX6zEy{Zh{+4k7v9I;^wx_p z%tSNWmr`sir{;ZzvT0rb>JKE&LyK8_UM&1mJ&E2W+JJQ@n;ZCZ%`c^ic87 zo3J~$!t2KRZ$L?uRXWJ}b+KC!5> zXHNBvN(MMjRZUx6pLV31++eOv%wS#-aBn!LmhzhR9WzCvDV4<$GnszWcim8t)2^f{ z9}#@Je)M6drp&DU?xRg>_=5`*r&6HJb?B-&EmjL3#?ConfU5?<3y)v*D>c6R@p;2$ z%LUMhBrO?xqN|HcEzBIWVMjnJ3Gll-hh8w^V3|ayDS!-kU^6WMT2N#P;<6YerOD7= zQe6E0u0ATFPzTaak1@T##nHmPxFyh{T%e&`1#>0xsa}Jk-k0Ck_QfS75lwx~KC%vi zG8r+3x3srUoUiTy1#EOQ4$xEF){`BGw|MrRb@fk1Dz78`J2mU~0TnZ~xRx!qFBetb zJ3&&KRLzAhKpOgDPJ4_moS3Q%>$hkwOfk6Z zhlp)@+U__SY7W8;8Xt;)<}*!o7arcx8uR$7pX3xyoUFALBpUX~+t%Ted&=t?e~6g8 z{t$i6xohYU!SK4b_Lcu)V@FaXrRn|mo#Ph9TeKEduV$I4?=J3A@J%xE~6*7e1^GWMCjiE2znr%0_kRVdFYG^C-6*69ua*Vn@Og*hW#; zb-e}KNLqGw5V(BDpXws8A+TzQgLfG`c^+VwW|s*B!T?f@0t(|d_*_2?;bLL0!1 zanEd!0r9AVwc0#1Wb_sz=4h#{#;6?yd4l>Hp2XIRH@eb@~WfMYl zbg1AJp0JaS{!#goKAK^m#6$rO6v#sXmH_pP;h%nfex1F&l9}e!*>X_nz&}1*t)8%7 zf&$&Xl}MfQGzIfc_}}IkT2>m*nlzhy3Bi0jc7(DuYax%?>#!d_&)fp`KA1dKn7=%4 zg(~ova`Agmc8MuR!!o>f#Kp05@X%3NI zAZV~W)ov0FUD)SL`b{~Z26+uNX5N^gHTZ9#YJ}^$I@nq-7pkKAs>75Ma3(LizO7-u zX@hS@UQPiJ6RqyM0X79;wwa7()$)Ob4F(a&E{M!`Zro^s8ps8z!bHMZN98T@c?3ua zzb@x}s0Y8z*>*GD9z1rf2bkk+u(3V#Xg#~(i3#^&RJ<)TJW4kyTsntZNtNw8!MqjYcf@OTk3JNqpdQG*4^&A-#);!s(tf55PPfbu8Nvs zbeycTHLk>%2F3INL4d}HrEq3fs1U&&lkGhV%n%1_?}g$fnesfDTWjL?P;O5`ZK4$#}sn4Ug-Kv5o?t+;TgkHvHPXirxW_SRK1 z=bTrj-+y+jq!*}Y|%32L1wVpkK z&)@3G_il0dX>^9$UFX`>@DxQ7#)rAer! zeBgQdZPOdh9YXzNrAf>W^+`w-*yNi{KXd$gXLoDLuNqztKX>GXxX}GTsb`h2oBQH! znu2WZjd@jM!F}CY*&qz(^@XV{ylGFjjGsdos!yI|pqCsN5$;q(9Q+8ji^r)(v#^|> zIN8pEP3M)6+-SBfTTXzphST{6^RiS6doAi6>(T_*9*V7|4>tf)k$iYEnIw}u!dkg& zmp8CoOA(Tr61Ti!c#lVy8UO1or&Ao+Fa8BF!GgO?Y3#GX}AsiP^giz(VD zbPJc?dsx``(&e=~?K?gr47SHDILQ6V_fJ*OJXT^NXnbsCK_0v54~2|O?9=#IjUicsX4Xd5ej9V&B@d-jubaOlqc6#Vx-GPFX0JxUXW z(T$ImI^QA>#bS_Z82Q=^O4RA;1m?>vAx}lejq&+k!&(t5FAsm6tK96-9^nd_kZc`b zpNz1c^D-T;+E&dqRdgAZ<8$`kwtimV%tkl8;aXpfTGA;#7I2nxwXzPMqq8UdX_l3p zdzGm4b8&xFe|5~Aw44SQC1iVQ>M_k3bUsvSQOJEdK>RDJ(+H=YHM~*1jZXc0l5)Xb zZswr>N1n^DhLb4>>v5?5J5FPS3KP5?AeO{0Ws|}R-`+a^vurx2gvEwUPC>9lE>ZaW zlyJY-D_LS$lC9__&ZyvoVVL9qptf`%7s+|b043E&R3}4*}dYp)l7Z%jS!GKmZDQJxrFGuX;?VfO+cwfZV$M#y> z%y?q9|0DH8V<|_snr^LN?G37}Wbopa67!su&FO;34=jOeNSnTGivG;ET&bciC4+@0 z*5148d@)w55ECoj_vouj&AgSMpZksVjkDv_l-I4#A9&99bK@*6w9t&f;KvYoTCR`N&uANrlEFE`^s ziA;#~(s^o#*LgEZd19>2d)3qKoBhxA(RlUtI+???O(+ikV3gPB53CKO^6Kl!oxdRC z#3xlpyJ8R?LGRF^n0s?;0z=hg9n9qM?IijfBn|`dk#37ajC_*9e@GwR|NCrM%B7J-PPZ zGNr$=SG-R6f`sUB6BeNrQ#kj?MZcZ+`o5d^VrQSW{)a{Wqx048DU)0Ui54v}3?dgV zE#93iGIpF%GT8UHZPBa>k-9wz*nImn%TS)nZuwY~+|Vdf)j_@NRteUQ`Ms3T&NLf4 z_n3-Lk{+WW{uq*y*YSy84PLJCU6tAU=;86Mn|{Ph;9i~BdtMIA8RG6WYmNqPe`&%X zdop+xzq9H@$qB<9k0s{yLNi~!s z^JRiCB*oKr@K(PlZI|1gJQvau=9A3q4HCU&vgkPVlc#=3gRQ{QkQD}FcmpXTf0Z{6 zFL-L-O3TR1LrM47P1!=>(Dwr5`|@L394lUPEB3+}?^s+dR}JI7N9?zKQBnIK?9@$6 zR48EA!rBH65XygbhLyc%q+Q|4llQrJU_R=sPRsfXSxb~G$_ zedck`HehB#2%Yi7vxesWnfMvQ;S9&#mbJ9ea&}3OJk`^a!2h;~^=lmk`ME!wfBX;O<(qm~=;fw@XE4m+jG&&baow>%Y(lb4E-O`PMwFFu725#L+3= z!17^B^`ChrY8KGW}pbe8L1XH+px}#w*h(b-#OW{(62oJU_+pbAbc9Eu+igx1!iZ2I0RN+ zld)o>?BRLqnlybO>2v?EL7XN|{o9q6uX20L)SpO5tiq2Kzsp}Ow`qT>Yh9sxomj1~ zEdKueVzC!DKkD`0Tk+EYNdNnG<-pT`F@B`(Blbh z+lENR3Nz`Es4wr?*U#_y)d?qw6hA&f&y5#o;7N9O>Xs)gXWfL(IRJaUBAOa~eSK(z zt0xZ70$CJV2D{L1`wbtGhj+PR#tWftg6AU)<_;i?CW9GbC&&P;@~IK`#sxqK5zORu zYU(~^1;JLpPC);>wdNHu7tANS6SzVFG+hix3&iHV27ZT5m^cjpvXb8^42Wt(K!Ste z<$My4NPmI21RpmSU!g#R^Mwb74+e%{P-@(Y)Eo{e={qZFk;G`xMM2Q=JnvX ziuVbNk3)95j?Ikz&t~_Xf`jmkzR_5N&z!VB^ECwNTBmj@y9!ZP{uL@gMggT-T3k#_ z5x@n(J%bz`L5|0aFwy_x3Zeic8vv&pp$*M)=MDn9Ls*muM7}%%DB3#!g0`P)LPwuB$dtIAfA) zv1t;oJ>8RB_C*a1-&?aWBdOed>uI{rcp{GR<=05M|Eb<$gloz5`_5`aE)yu|W(R9x z)f%BS`<18$lGUE4C2cUo`5is4Y2Rqi+}Tr>`OyL!JCA5J@#}bWHyQfjZ@e^RZC|;d z(<@i17Iz&#gMLWL`;ri9jc4o^Iv z)-w^~^zblWyFrfCBg;b#9Aj+y8=|hxn>1&26F1qv>-fA)%=bN0!CIBI80n0`=O1M4 zBFK95?691&8U5ydOu6oCIdi4e9T#k^=rPtbsqsE^yogc@>2kOTZlP5X8!`bSUq=+e zqb}OfQ9cm(AqST;v0o+`WkgbXfm$I|Ijsp##ru+dbI(|9@BC*0w|bP5J$v+3 zP~Ud?>lT^-&l(yqKa@D6Xl%8f93Q{4nt07^#8y4yB{n#EmA$G#*vqhep64Yh{O7~= zp>uj>e#Xb9$HpRjq^fkaCx5zq?TTgD$Z=M6$9O_U|J+BhQDysJ8I8slX#RAxZv)+Y zW0EQF(^stu%vnm8fx;eAkQo~VpubyQQVZT9qt#7_3oWS3?%c>{?`*PUSru{gKgxtM zhd%26rA2(DYVyIEQKI)9tQJf(U)*p|_Vnj#@c_S0$4W96n6;b$NrXw~cr5yrD}&JM zL&2qd=s#xp2{cPi6F>LeCX!2msrnZ>pAUj}e=+oG`gkGFhaePQ06g{_q@P&YcEgkz z2{!?r3fS99Ob6(eyW^X|iZs$Yf|Vrl^l3D-*~x(p6d5Zy7E9Pw4h)#~RHrr7Wc~#n zGr9``ruhe^`1glfd-xrRqZzJ`-+DFmGvEc`YRB!{Oc`lOVNG`Tu^k9w$P*{0+hs+b z1mP8>3$?sH8Dx6s^Yc7IsZ{*k%`Vz=6R2!k7@7HP8iaDZRbN$n#uvn&WDwNS)3qj; z9@*PX2y!v=y0d)cWN@@?VzjRSMQdZ^#f82;^SkilyrA7O&%31EX9xQ%xK@G~k8I!J z#m$TaZr@y)46={WlN%ShvzWbI+U68&AY7$n?wa`0rwH>I_Czj^5ex{RKeB+ zKRMsuenF)E1AE&Su2_B_+Z#FcL)_inoEvlXWi6F>_h{?=k6p_)9f?iUdTz~JH7WP| zTx^`&g>j=zi+(9s{ZX35;2(D52S(_}T=tE*gMGQJE=C$=ZzsMHVWBqBTe5eU)6I

{2UjIP=Z?*itUP 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

+su?@TC_~N?#wMoh2`fr6!QA#thPYz-i_iNU}0D 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≥g+l4byZ)#-h`(^ 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 WJ(?SO_7f)q5O})!xvX= 99.9 + + print("Calculating statistics...") + + statistics = { + 'general_num_flows': len(flow_ids), + 'general_num_unique_sources': len(set(source_ids)), + 'general_num_unique_targets': len(set(target_ids)), + 'general_flow_size_bytes_mean': np.mean(flow_sizes), + 'general_flow_size_bytes_std': np.std(flow_sizes) + } + + # Define flow size ranges + range_low = [-1, -1, -1, 100000, 2434900, 1000000, 10000000] + range_high = [-1, 100000, 2434900, -1, -1, -1, -1] + range_name = ["all", "less_100KB", "less_2.4349MB", "geq_100KB", "geq_2.4349MB", "geq_1MB", "geq_10MB"] + range_completed_duration = [[], [], [], [], [], [], []] + range_num_finished_flows = [0, 0, 0, 0, 0, 0, 0] + range_num_unfinished_flows = [0, 0, 0, 0, 0, 0, 0] + range_low_eq = [0, 0, 0, 1, 1, 1, 1] + range_high_eq = [0, 0, 0, 1, 1, 1, 1] + + # Go over all flows + for i in range(0, len(flow_ids)): + # Range-specific + for j in range(0, len(range_name)): + if ( + (range_low[j] == -1 or (range_low_eq[j] == 0 and flow_sizes[i] > range_low[j]) or (range_low_eq[j] == 1 and flow_sizes[i] >= range_low[j])) and + (range_high[j] == -1 or (range_high_eq[j] == 0 and flow_sizes[i] < range_high[j]) or (range_high_eq[j] == 1 and flow_sizes[i] <= range_high[j])) + ): + if completed[i]: + range_num_finished_flows[j] += 1 + range_completed_duration[j].append(durations[i] * 1000000000) # Convert seconds to nanoseconds + else: + range_num_unfinished_flows[j] += 1 + + # Ranges statistics + for j in range(0, len(range_name)): + # Number of finished flows + statistics[range_name[j] + '_num_flows'] = range_num_finished_flows[j] + range_num_unfinished_flows[j] + print(range_name[j] + '_num_flows', range_num_finished_flows[j] + range_num_unfinished_flows[j]) + + statistics[range_name[j] + '_num_finished_flows'] = range_num_finished_flows[j] + print(range_name[j] + '_num_finished_flows', range_num_finished_flows[j]) + + statistics[range_name[j] + '_num_unfinished_flows'] = range_num_unfinished_flows[j] + print(range_name[j] + '_num_unfinished_flows', range_num_unfinished_flows[j]) + + total = (range_num_finished_flows[j] + range_num_unfinished_flows[j]) + if range_num_finished_flows[j] != 0: + statistics[range_name[j] + '_flows_completed_fraction'] = float(range_num_finished_flows[j]) / float(total) + + # Duration is stored in nanoseconds in the statistics + statistics[range_name[j] + '_mean_fct_ns'] = np.mean(range_completed_duration[j]) + print(range_name[j] + '_mean_fct_ns', np.mean(range_completed_duration[j])) + + statistics[range_name[j] + '_median_fct_ns'] = np.median(range_completed_duration[j]) + statistics[range_name[j] + '_99th_fct_ns'] = np.percentile(range_completed_duration[j], 99) + statistics[range_name[j] + '_99.9th_fct_ns'] = np.percentile(range_completed_duration[j], 99.9) + + # Convert to milliseconds for display purposes + statistics[range_name[j] + '_mean_fct_ms'] = statistics[range_name[j] + '_mean_fct_ns'] / 1000000 + statistics[range_name[j] + '_median_fct_ms'] = statistics[range_name[j] + '_median_fct_ns'] / 1000000 + statistics[range_name[j] + '_99th_fct_ms'] = statistics[range_name[j] + '_99th_fct_ns'] / 1000000 + statistics[range_name[j] + '_99.9th_fct_ms'] = statistics[range_name[j] + '_99.9th_fct_ns'] / 1000000 + else: + statistics[range_name[j] + '_flows_completed_fraction'] = 0 + + # Add the original duration values for comparing with other analysis + print("\nOriginal duration values (seconds) for comparison:") + print(f"All flows - Mean duration: {np.mean(durations):.4f} seconds") + print(f"Small flows (<100KB) - Mean duration: {np.mean(durations[flow_sizes <= 100000]):.4f} seconds") + print(f"Medium flows (>100KB, <2.4MB) - Mean duration: {np.mean(durations[(flow_sizes > 100000) & (flow_sizes < 2434900)]):.4f} seconds") + print(f"Large flows (>1MB) - Mean duration: {np.mean(durations[flow_sizes > 1000000]):.4f} seconds") + + # Create CDF plot for flow completion times + plt.figure(figsize=(10, 6)) + for j in range(len(range_name)): + if range_num_finished_flows[j] > 0: + sorted_fct = np.sort(range_completed_duration[j]) / 1000000 # Convert ns to ms for readability + cdf = np.arange(1, len(sorted_fct)+1) / len(sorted_fct) + plt.plot(sorted_fct, cdf, label=range_name[j]) + + plt.xlabel('Flow Completion Time (ms)') + plt.ylabel('CDF') + plt.title('CDF of Flow Completion Times by Flow Size Category') + plt.grid(True, linestyle='--', linewidth=0.5) + plt.legend() + plt.savefig(f'{analysis_folder_path}/fct_cdf.png') + + # Print raw results + print('Writing to result file flow_completion.statistics...') + with open(analysis_folder_path + '/flow_completion.statistics', 'w+') as outfile: + for key, value in sorted(statistics.items()): + outfile.write(str(key) + "=" + str(value) + "\n") + + # Print summary statistics for comparison + print("\nSummary of Flow Completion Times:") + print("Flow Size Category | Mean (sec) | Median (sec) | 99th (sec)") + print("------------------------|-------------|--------------|------------") + for j in range(len(range_name)): + if range_num_finished_flows[j] > 0: + mean_sec = statistics[range_name[j] + '_mean_fct_ns'] / 1e9 + median_sec = statistics[range_name[j] + '_median_fct_ns'] / 1e9 + p99_sec = statistics[range_name[j] + '_99th_fct_ns'] / 1e9 + print(f"{range_name[j].ljust(24)} | {mean_sec:11.4f} | {median_sec:12.4f} | {p99_sec:10.4f}") + +if __name__ == "__main__": + # Path to the CSV file + csv_file_path = "flow_analysis.csv" + + # Analyze flow completion + analyze_flow_completion(csv_file_path) \ No newline at end of file diff --git a/exercises/basic/analyze_flow_completion_time.py b/exercises/basic/analyze_flow_completion_time.py new file mode 100644 index 00000000..42ab3a3b --- /dev/null +++ b/exercises/basic/analyze_flow_completion_time.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +from collections import defaultdict + +def analyze_flow_completion_time(csv_file): + """ + Analyze flow completion times from the CSV file with flow data. + + Args: + csv_file (str): Path to the CSV file containing flow analysis data + + Returns: + None (displays statistics and plots) + """ + # Read the CSV file + df = pd.read_csv(csv_file) + + # Display basic statistics + print(f"Total number of flows: {len(df)}") + print(f"Average FCT: {df['duration'].mean():.4f} seconds") + print(f"Median FCT: {df['duration'].median():.4f} seconds") + print(f"Min FCT: {df['duration'].min():.4f} seconds") + print(f"Max FCT: {df['duration'].max():.4f} seconds") + + # Group flows by size categories + small_flows = df[df['flow_size'] <= 100000] # <= 100KB + medium_flows = df[(df['flow_size'] > 100000) & (df['flow_size'] <= 1000000)] # 100KB-1MB + large_flows = df[df['flow_size'] > 1000000] # > 1MB + + print("\nFlow Completion Time by Flow Size Category:") + print(f"Small flows (<= 100KB): {len(small_flows)} flows, Avg FCT: {small_flows['duration'].mean():.4f} seconds") + print(f"Medium flows (100KB-1MB): {len(medium_flows)} flows, Avg FCT: {medium_flows['duration'].mean():.4f} seconds") + print(f"Large flows (> 1MB): {len(large_flows)} flows, Avg FCT: {large_flows['duration'].mean():.4f} seconds") + + # Calculate throughput (flow_size / duration) in Mbps + df['throughput_mbps'] = (df['flow_size'] * 8 / 1000000) / df['duration'] + print(f"\nAverage throughput: {df['throughput_mbps'].mean():.2f} Mbps") + + # Create size categories for plotting + size_categories = [] + for size in df['flow_size']: + if size <= 100000: + size_categories.append('Small (<= 100KB)') + elif size <= 1000000: + size_categories.append('Medium (100KB-1MB)') + else: + size_categories.append('Large (> 1MB)') + + df['size_category'] = size_categories + + # Calculate statistics by category + category_stats = df.groupby('size_category')['duration'].agg(['mean', 'median', 'min', 'max']) + print("\nFlow Completion Time Statistics by Category:") + print(category_stats) + + # Plot FCT by flow size (scatter plot) + plt.figure(figsize=(10, 6)) + plt.scatter(df['flow_size']/1000, df['duration'], alpha=0.7) + plt.xscale('log') + plt.xlabel('Flow Size (KB)') + plt.ylabel('Flow Completion Time (seconds)') + plt.title('Flow Completion Time vs Flow Size') + plt.grid(True, which='both', linestyle='--', linewidth=0.5) + plt.tight_layout() + plt.savefig('fct_vs_size.png') + + # Plot FCT CDF + plt.figure(figsize=(10, 6)) + for category, group in df.groupby('size_category'): + sorted_fct = np.sort(group['duration']) + cdf = np.arange(1, len(sorted_fct)+1) / len(sorted_fct) + plt.plot(sorted_fct, cdf, label=category) + + plt.xlabel('Flow Completion Time (seconds)') + plt.ylabel('CDF') + plt.title('CDF of Flow Completion Time by Flow Size Category') + plt.grid(True, linestyle='--', linewidth=0.5) + plt.legend() + plt.tight_layout() + plt.savefig('fct_cdf.png') + + # Plot throughput by flow size + plt.figure(figsize=(10, 6)) + plt.scatter(df['flow_size']/1000, df['throughput_mbps'], alpha=0.7) + plt.xscale('log') + plt.xlabel('Flow Size (KB)') + plt.ylabel('Throughput (Mbps)') + plt.title('Throughput vs Flow Size') + plt.grid(True, which='both', linestyle='--', linewidth=0.5) + plt.tight_layout() + plt.savefig('throughput_vs_size.png') + + # Calculate FCT slowdown (actual FCT / ideal FCT) + # Assuming link capacity is 10 Mbps (can adjust based on your setup) + link_capacity_mbps = 10 + df['ideal_fct'] = (df['flow_size'] * 8) / (link_capacity_mbps * 1000000) + df['slowdown'] = df['duration'] / df['ideal_fct'] + + print(f"\nAverage FCT slowdown: {df['slowdown'].mean():.2f}x") + print(f"Median FCT slowdown: {df['slowdown'].median():.2f}x") + + # Plot slowdown CDF + plt.figure(figsize=(10, 6)) + for category, group in df.groupby('size_category'): + sorted_slowdown = np.sort(group['slowdown']) + cdf = np.arange(1, len(sorted_slowdown)+1) / len(sorted_slowdown) + plt.plot(sorted_slowdown, cdf, label=category) + + plt.xscale('log') + plt.xlabel('FCT Slowdown') + plt.ylabel('CDF') + plt.title('CDF of FCT Slowdown by Flow Size Category') + plt.grid(True, linestyle='--', linewidth=0.5) + plt.legend() + plt.tight_layout() + plt.savefig('slowdown_cdf.png') + + print("\nPlots saved as: fct_vs_size.png, fct_cdf.png, throughput_vs_size.png, slowdown_cdf.png") + +if __name__ == "__main__": + # Path to the CSV file + csv_file = "flow_analysis.csv" + + # Analyze flow completion times + analyze_flow_completion_time(csv_file) \ No newline at end of file diff --git a/exercises/basic/analyze_flow_stats.py b/exercises/basic/analyze_flow_stats.py new file mode 100755 index 00000000..7ad9ee6d --- /dev/null +++ b/exercises/basic/analyze_flow_stats.py @@ -0,0 +1,414 @@ +#!/usr/bin/env python3 +import os +import re +import csv +import glob +import json +import datetime +from collections import defaultdict + +def parse_iperf_output(file_path, is_sender=True): + """ + Parse iperf output files to extract flow information. + Returns a dictionary with flow details. + """ + flow_data = {} + + # Determine if this is a sender or receiver file + flow_role = "sender" if is_sender else "receiver" + + # Extract host information from filename + filename = os.path.basename(file_path) + host_match = re.search(r'(sender|receiver)_([a-zA-Z0-9]+)\.(?:txt|json)', filename) + if host_match: + flow_data['host'] = host_match.group(2) + else: + flow_data['host'] = "unknown" + + flow_data['role'] = flow_role + + # Default values + flow_data['start_time'] = None + flow_data['end_time'] = None + flow_data['duration'] = None + flow_data['transferred'] = None + flow_data['bandwidth'] = None + flow_data['peer_address'] = None + flow_data['peer_port'] = None + flow_data['local_address'] = None + flow_data['local_port'] = None + + try: + with open(file_path, 'r') as f: + content = f.read() + + # Extract connection info using a more flexible regex + if is_sender: + # For sender files + server_match = re.search(r'Client connecting to ([0-9.]+), TCP port (\d+)', content) + if server_match: + flow_data['peer_address'] = server_match.group(1) + flow_data['peer_port'] = server_match.group(2) + + # Also try to extract local connection info + local_match = re.search(r'local ([0-9.]+) port (\d+) connected with ([0-9.]+) port (\d+)', content) + if local_match: + flow_data['local_address'] = local_match.group(1) + flow_data['local_port'] = local_match.group(2) + # Double-check peer address + if not flow_data['peer_address']: + flow_data['peer_address'] = local_match.group(3) + if not flow_data['peer_port']: + flow_data['peer_port'] = local_match.group(4) + else: + # For receiver files + conn_match = re.search(r'local ([0-9.]+) port (\d+) connected with ([0-9.]+) port (\d+)', content) + if conn_match: + flow_data['local_address'] = conn_match.group(1) + flow_data['local_port'] = conn_match.group(2) + flow_data['peer_address'] = conn_match.group(3) + flow_data['peer_port'] = conn_match.group(4) + else: + # Try alternative receiver format + server_match = re.search(r'Server listening on .* port (\d+)', content) + client_match = re.search(r'Client connecting from ([0-9.]+), port (\d+)', content) + if server_match: + flow_data['local_port'] = server_match.group(1) + if client_match: + flow_data['peer_address'] = client_match.group(1) + flow_data['peer_port'] = client_match.group(2) + + # Extract transfer and bandwidth from the last line with data + lines = content.strip().split('\n') + for line in reversed(lines): + # Skip empty lines + if not line.strip(): + continue + + # Look for lines with transfer data + # Format example: [ 1] 0.0000-1.1695 sec 3.18 MBytes 22.8 Mbits/sec + if 'sec' in line and ('bits/sec' in line or 'Bytes' in line): + parts = line.split() + + # Try to extract interval + interval_match = re.search(r'(\d+\.\d+)-(\d+\.\d+) sec', line) + if interval_match: + start_sec = float(interval_match.group(1)) + end_sec = float(interval_match.group(2)) + flow_data['duration'] = end_sec - start_sec + + # Extract transfer - look for value followed by [KMG]Bytes + transfer_idx = -1 + for i, part in enumerate(parts): + if 'Bytes' in part and i > 0: + transfer_idx = i - 1 + break + + if transfer_idx >= 0: + amount = float(parts[transfer_idx]) + unit = 'M' if 'MBytes' in parts[transfer_idx + 1] else \ + 'K' if 'KBytes' in parts[transfer_idx + 1] else \ + 'G' if 'GBytes' in parts[transfer_idx + 1] else '' + + # Convert to bytes + if unit == 'K': + amount *= 1024 + elif unit == 'M': + amount *= 1024*1024 + elif unit == 'G': + amount *= 1024*1024*1024 + + flow_data['transferred'] = amount + + # Extract bandwidth - look for value followed by [KMG]bits/sec + bw_idx = -1 + for i, part in enumerate(parts): + if 'bits/sec' in part and i > 0: + bw_idx = i - 1 + break + + if bw_idx >= 0: + bw = float(parts[bw_idx]) + unit = 'M' if 'Mbits/sec' in parts[bw_idx + 1] else \ + 'K' if 'Kbits/sec' in parts[bw_idx + 1] else \ + 'G' if 'Gbits/sec' in parts[bw_idx + 1] else '' + + # Convert to bits/sec + if unit == 'K': + bw *= 1000 + elif unit == 'M': + bw *= 1000*1000 + elif unit == 'G': + bw *= 1000*1000*1000 + + flow_data['bandwidth'] = bw + + break # Found what we need + + except Exception as e: + print(f"Error parsing {file_path}: {e}") + + return flow_data + +def load_flow_mapping_info(file_path): + """ + Load flow mapping information from the JSON file. + Returns a dictionary with flow_id as key and flow details as value. + """ + flow_map = {} + try: + with open(file_path, 'r') as f: + flow_data = json.load(f) + + # Check if the data is in array format (new format) + if isinstance(flow_data, list): + for flow in flow_data: + flow_id = flow.get('flow_id') + if flow_id: + flow_map[flow_id] = { + 'source': flow.get('source'), + 'destination': flow.get('destination'), + 'flow_size': flow.get('flow_size'), + 'source_ip': flow.get('source_ip', ''), + 'destination_ip': flow.get('destination_ip', '') + } + # Check if it's in object format with keys like "h1->h3" (old format) + elif isinstance(flow_data, dict): + for key, flow_info in flow_data.items(): + # Extract flow_id from the value + flow_id = flow_info.get('flow_id') + if flow_id: + # Try to parse source and destination from key (e.g., "h1->h3") + parts = key.split('->') + source = parts[0] if len(parts) > 0 else '' + destination = parts[1] if len(parts) > 1 else '' + + flow_map[flow_id] = { + 'source': source, + 'destination': destination, + 'flow_size': flow_info.get('flow_size_bytes', 0), + 'source_ip': '', + 'destination_ip': '' + } + + print(f"Loaded {len(flow_map)} flows from {file_path}") + except Exception as e: + print(f"Error loading flow mapping data from {file_path}: {e}") + + return flow_map + +def match_sender_receiver_files(sender_files, receiver_files, flow_mapping): + """ + Match sender and receiver files based on flow mapping information. + Returns a list of matched flows with their file paths. + """ + matched_flows = [] + + # Create dictionaries to quickly look up files by host name + sender_dict = {} + for file_path in sender_files: + host_name = extract_host_from_filename(file_path) + if host_name: + sender_dict[host_name] = file_path + + receiver_dict = {} + for file_path in receiver_files: + host_name = extract_host_from_filename(file_path) + if host_name: + receiver_dict[host_name] = file_path + + # Match files based on flow mapping + for flow_id, flow_info in flow_mapping.items(): + source = flow_info.get('source') + destination = flow_info.get('destination') + + if source in sender_dict and destination in receiver_dict: + matched_flows.append({ + 'flow_id': flow_id, + 'source': source, + 'destination': destination, + 'flow_size': flow_info.get('flow_size', 0), + 'sender_file': sender_dict[source], + 'receiver_file': receiver_dict[destination], + 'source_ip': flow_info.get('source_ip', ''), + 'destination_ip': flow_info.get('destination_ip', '') + }) + + return matched_flows + +def extract_host_from_filename(file_path): + """ + Extract host name from file path like 'sender_h1.txt' or 'receiver_h3.txt'. + """ + filename = os.path.basename(file_path) + match = re.search(r'(sender|receiver)_([a-zA-Z0-9]+)\.(?:txt|json)', filename) + if match: + return match.group(2) + return None + +def analyze_flow(matched_flow): + """ + Analyze a matched flow by parsing sender and receiver files. + Returns a dictionary with analysis results. + """ + result = { + 'flow_id': matched_flow['flow_id'], + 'sender': matched_flow['source'], + 'receiver': matched_flow['destination'], + 'flow_size': matched_flow['flow_size'], + 'source_ip': matched_flow['source_ip'], + 'destination_ip': matched_flow['destination_ip'], + 'total_sent': 0, + 'total_received': 0, + 'duration': 0, # FCT in seconds + 'progress': 0, # Percentage of flow completed + } + + # Parse sender file + sender_data = parse_iperf_output(matched_flow['sender_file'], is_sender=True) + if sender_data and 'transferred' in sender_data: + result['total_sent'] = sender_data['transferred'] + # We'll use sender duration only as a fallback + + # Parse receiver file + receiver_data = parse_iperf_output(matched_flow['receiver_file'], is_sender=False) + if receiver_data and 'transferred' in receiver_data: + result['total_received'] = receiver_data['transferred'] + # Prioritize the receiver's duration as the flow completion time + if 'duration' in receiver_data and receiver_data['duration']: + result['duration'] = receiver_data['duration'] + # Only fall back to sender's duration if receiver's is not available + elif not result['duration'] and sender_data and 'duration' in sender_data: + result['duration'] = sender_data['duration'] + print(f"Warning: Using sender duration for flow {matched_flow['flow_id']} as receiver duration not available") + + # Calculate progress (percentage of flow completed) + if result['flow_size'] > 0 and result['total_sent'] > 0: + result['progress'] = (result['total_sent'] / result['flow_size']) * 100 + + return result + +def write_csv(flow_results, output_file): + """ + Write flow analysis results to a CSV file. + """ + fieldnames = [ + 'flow_id', 'sender', 'receiver', 'flow_size', + 'total_sent', 'total_received', 'duration', 'progress', + 'source_ip', 'destination_ip' # Added these fields + ] + + try: + with open(output_file, 'w', newline='') as csvfile: + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + writer.writeheader() + + for flow in flow_results: + writer.writerow(flow) + + print(f"CSV file created successfully: {output_file}") + except Exception as e: + print(f"Error writing CSV file: {e}") + # Try writing to current directory as fallback + try: + alt_output = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'flow_analysis.csv') + with open(alt_output, 'w', newline='') as csvfile: + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + writer.writeheader() + + for flow in flow_results: + writer.writerow(flow) + print(f"CSV file created at alternative location: {alt_output}") + except Exception as alt_e: + print(f"Failed to write to alternative location: {alt_e}") + +def find_iperf_files(output_dir): + """ + Find iperf output files in the specified directory. + If .txt files are not found, will try .json files. + """ + sender_files = glob.glob(os.path.join(output_dir, 'sender_*.txt')) + receiver_files = glob.glob(os.path.join(output_dir, 'receiver_*.txt')) + + # If no .txt files found, try .json files + if not sender_files: + json_sender_files = glob.glob(os.path.join(output_dir, 'sender_*.json')) + if json_sender_files: + print("Found .json sender files instead of .txt files") + sender_files = json_sender_files + + if not receiver_files: + json_receiver_files = glob.glob(os.path.join(output_dir, 'receiver_*.json')) + if json_receiver_files: + print("Found .json receiver files instead of .txt files") + receiver_files = json_receiver_files + + return sender_files, receiver_files + +def main(): + # Define the directory where iperf output files are stored + base_dir = os.path.dirname(os.path.abspath(__file__)) + output_dir = os.path.join(base_dir, 'outputs') + + # Check if outputs directory exists + if not os.path.exists(output_dir): + print(f"Warning: Outputs directory {output_dir} does not exist.") + # Try looking in current directory + alt_output_dir = os.path.join(base_dir) + print(f"Looking for iperf files in {alt_output_dir}") + sender_files, receiver_files = find_iperf_files(alt_output_dir) + else: + # Find all iperf output files + sender_files, receiver_files = find_iperf_files(output_dir) + + print(f"Found {len(sender_files)} sender files and {len(receiver_files)} receiver files") + + if not sender_files or not receiver_files: + print("Warning: No iperf files found. Please check file paths.") + return + + # Print found files for debugging + print("Sender files:") + for f in sender_files: + print(f" {f}") + print("Receiver files:") + for f in receiver_files: + print(f" {f}") + + # Load flow mapping information + flow_mapping_path = os.path.join(base_dir, 'flow_mapping_info.json') + flow_mapping = load_flow_mapping_info(flow_mapping_path) + + if not flow_mapping: + print("Error: Could not load flow mapping information.") + return + + # Match sender and receiver files based on flow mapping + matched_flows = match_sender_receiver_files(sender_files, receiver_files, flow_mapping) + + if not matched_flows: + print("Warning: No flows could be matched. Check flow mapping and file names.") + return + + print(f"Successfully matched {len(matched_flows)} flows.") + + # Analyze each matched flow + flow_results = [] + for matched_flow in matched_flows: + result = analyze_flow(matched_flow) + flow_results.append(result) + + # Print summary for this flow + print(f"\nFlow {result['flow_id']}: {result['sender']} → {result['receiver']}") + print(f" Flow Size: {result['flow_size']} bytes") + print(f" Sent: {result['total_sent']} bytes") + print(f" Received: {result['total_received']} bytes") + print(f" Duration (FCT): {result['duration']:.4f} seconds") + print(f" Progress: {result['progress']:.2f}%") + + # Write results to CSV + csv_path = os.path.join(output_dir, 'flow_analysis.csv') + write_csv(flow_results, csv_path) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercises/basic/analyze_iperf_json_results.py b/exercises/basic/analyze_iperf_json_results.py new file mode 100755 index 00000000..c322cef4 --- /dev/null +++ b/exercises/basic/analyze_iperf_json_results.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python3 +import os +import json +import argparse +import pandas as pd +import matplotlib.pyplot as plt +from pathlib import Path + +def analyze_iperf_logs(log_files, output_image): + """ + Parses multiple iperf3 server JSON logs, calculates relative start/end times, + and plots throughput vs. relative time for each flow. + """ + all_data = [] + flow_info = {} + min_start_time_abs = float('inf') + + print(f"Processing log files: {log_files}") + + # First pass: Read start times and find the minimum + for log_file in log_files: + try: + with open(log_file, 'r') as f: + content = f.read() + log_data = json.loads(content) + start_time_abs = log_data.get('start', {}).get('timestamp', {}).get('timesecs') + if start_time_abs is not None: + min_start_time_abs = min(min_start_time_abs, start_time_abs) + flow_info[log_file] = {'start_time_abs': start_time_abs} + else: + print(f"Warning: Could not find absolute start time in {log_file}") + flow_info[log_file] = {'start_time_abs': None} # Mark as unknown + except FileNotFoundError: + print(f"Error: Log file not found at {log_file}") + flow_info[log_file] = {'start_time_abs': None} # Mark as not found + except json.JSONDecodeError: + print(f"Error: Could not decode JSON from {log_file}") + flow_info[log_file] = {'start_time_abs': None} + except Exception as e: + print(f"Error reading or processing {log_file} for start time: {e}") + flow_info[log_file] = {'start_time_abs': None} + + if min_start_time_abs == float('inf'): + print("Error: Could not determine a valid start time from any log file. Using 0 as reference.") + min_start_time_abs = 0 # Fallback if no start times found + + print(f"Earliest absolute start time found: {min_start_time_abs}") + + # Second pass: Extract interval data and calculate relative times + for log_file in log_files: + if flow_info[log_file]['start_time_abs'] is None and min_start_time_abs == 0: + print(f"Skipping {log_file} due to previous errors and no reference time.") + continue # Skip files that had errors if we couldn't find any valid start time + + try: + with open(log_file, 'r') as f: + content = f.read() + log_data = json.loads(content) + + intervals = log_data.get('intervals', []) + if not intervals: + print(f"Warning: No intervals found in {log_file}") + continue + + # Use filename stem as default label + flow_label = Path(log_file).stem.replace('_server', '') # e.g., h7 + flow_start_rel = float('inf') + flow_end_rel = float('-inf') + + for interval in intervals: + sum_data = interval.get('sum') + if sum_data: + # Absolute end time of the interval + end_time_abs = sum_data.get('end') + bits_per_second = sum_data.get('bits_per_second') + + if end_time_abs is not None and bits_per_second is not None: + # Calculate relative time based on the earliest start time + time_rel = float(end_time_abs) # Use interval end time + if flow_info[log_file]['start_time_abs'] is not None: + # If we have an absolute start for *this* file, use it for relative calc + # Relative time = (absolute_interval_end_time - absolute_global_min_start_time) + # absolute_interval_end_time = absolute_file_start_time + interval_end_time_relative_to_file_start + time_rel = flow_info[log_file]['start_time_abs'] + float(end_time_abs) - min_start_time_abs + elif min_start_time_abs != 0: + # If no absolute start for this file, but we have a global min, estimate + # This assumes the interval 'end' times are relative to the file's own start + # This might be inaccurate if iperf JSON format changes + print(f"Warning: Estimating relative time for {log_file} using global min start.") + # Estimate absolute interval end time by adding interval end to global min start + # Then subtract global min start to get relative time + # This simplifies to just the interval end time, assuming it starts near global min + time_rel = float(end_time_abs) # Simplified: interval end relative to global min + else: + # Fallback: use interval end time directly if no absolute times found + time_rel = float(end_time_abs) + + + throughput_mbps = float(bits_per_second) / 1_000_000 # Convert to Mbps + + all_data.append({ + 'time_rel': time_rel, + 'throughput_mbps': throughput_mbps, + 'flow': flow_label + }) + # Estimate interval start time relative to global min + interval_start_rel = time_rel - sum_data.get('seconds', 1) + flow_start_rel = min(flow_start_rel, interval_start_rel) + flow_end_rel = max(flow_end_rel, time_rel) + + if flow_start_rel != float('inf'): + flow_info[log_file]['start_rel'] = flow_start_rel + flow_info[log_file]['end_rel'] = flow_end_rel + flow_info[log_file]['label'] = flow_label + else: + print(f"Warning: No valid intervals processed for {log_file}") + + + except FileNotFoundError: + # Already handled in first pass, but prevents crash + pass + except json.JSONDecodeError: + # Already handled in first pass + pass + except Exception as e: + print(f"Error processing intervals in {log_file}: {e}") + + + if not all_data: + print("No valid interval data found across all log files.") + return + + df = pd.DataFrame(all_data) + df['flow'] = df['flow'].astype('category') + + # --- Print Flow Start/End Times --- + print("\n--- Flow Start and End Times (Relative to Earliest Start) ---") + sorted_flows = sorted(flow_info.items(), key=lambda item: item[1].get('start_rel', float('inf'))) + for log_file, info in sorted_flows: + if 'start_rel' in info: + print(f"Flow {info['label']} ({Path(log_file).name}):") # Use Path().name for cleaner output + print(f" Relative Start Time: {info['start_rel']:.6f} seconds") + print(f" Relative End Time: {info['end_rel']:.6f} seconds") + else: + print(f"Flow ({Path(log_file).name}): Could not determine start/end times.") + print("------------------------------------------------------------\n") + + + # --- Plotting --- + plt.figure(figsize=(12, 6)) + + flow_labels_plotted = sorted(df['flow'].unique()) + print(f"Plotting data for flows: {flow_labels_plotted}") + + for flow_label in flow_labels_plotted: + flow_data = df[df['flow'] == flow_label].sort_values('time_rel') + if not flow_data.empty: + # Use step plot for better visualization of throughput over intervals + plt.step(flow_data['time_rel'], flow_data['throughput_mbps'], where='post', label=f'Flow {flow_label}') + else: + print(f"No data points found for flow: {flow_label}") + + + plt.xlabel("Time (seconds relative to earliest start)") + plt.ylabel("Throughput (Mbps)") + plt.title("Throughput vs. Time for Each Flow (Server-Side)") + if len(flow_labels_plotted) > 0: + plt.legend(title="Flow", bbox_to_anchor=(1.05, 1), loc='upper left') + plt.grid(True) + plt.ylim(bottom=0) # Ensure y-axis starts at 0 + plt.xlim(left=0, right=25) # Ensure x-axis starts at 0 + plt.tight_layout(rect=[0, 0, 0.85, 1]) # Adjust layout for legend + # plt.show() + # Save the plot using the provided absolute path + try: + # plt.show() # Show the plot interactively + plt.savefig(output_image) + print(f"Plot saved to {output_image}") + except Exception as e: + print(f"Error saving plot: {e}") + +def main(): + parser = argparse.ArgumentParser(description='Analyze multiple iperf3 server JSON logs and plot throughput vs. relative time.') + # Keep output_image argument, but it has a default absolute path + parser.add_argument('--output_image', type=str, default='/home/nwlab/p4/throughput_vs_time_combined.png', + help='Path to save the combined output plot image.') + + args = parser.parse_args() + + # Define the fixed list of log files to analyze + fixed_log_files = [ + '/home/nwlab/p4/tutorials/exercises/basic/outputs/h5_server.json', + '/home/nwlab/p4/tutorials/exercises/basic/outputs/h6_server.json', + '/home/nwlab/p4/tutorials/exercises/basic/outputs/h7_server.json', + '/home/nwlab/p4/tutorials/exercises/basic/outputs/h8_server.json' + ] + + # Check if files exist before passing them + existing_log_files = [f for f in fixed_log_files if os.path.exists(f)] + missing_files = [f for f in fixed_log_files if not os.path.exists(f)] + + if missing_files: + print(f"Warning: The following log files were not found and will be skipped:") + for f in missing_files: + print(f" - {f}") + + if not existing_log_files: + print("Error: None of the expected log files were found. Exiting.") + return + + analyze_iperf_logs(existing_log_files, args.output_image) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercises/basic/analyze_throughput.py b/exercises/basic/analyze_throughput.py new file mode 100755 index 00000000..0a97b23f --- /dev/null +++ b/exercises/basic/analyze_throughput.py @@ -0,0 +1,163 @@ +#!/usr/bin/env python3 + +import numpy as np +import csv +import sys +import os +import pandas as pd +import matplotlib.pyplot as plt + +################################## +# Setup +# + +print("Throughput Analysis Tool v0.01") + +# Create analysis folder if it doesn't exist +analysis_folder_path = 'analysis' +if not os.path.exists(analysis_folder_path): + os.makedirs(analysis_folder_path) + +################################## +# Analyze throughput +# +def analyze_throughput(csv_file_path): + print(f"Analyzing throughput from: {csv_file_path}") + + # Read the CSV file using pandas + df = pd.read_csv(csv_file_path) + + print("Calculating statistics...") + + # Basic statistics + statistics = { + 'general_num_flows': len(df), + 'general_num_unique_sources': len(df['source_id'].unique()), + 'general_num_unique_targets': len(df['dest_id'].unique()), + 'general_throughput_mbps_mean': np.mean(df['throughput_mbps']), + 'general_flow_size_bytes_mean': np.mean(df['flow_size_bytes']) + } + + # Define flow size ranges + range_low = [-1, -1, -1, 100000, 2434900, 1000000, 10000000] + range_high = [-1, 100000, 2434900, -1, -1, -1, -1] + range_name = ["all", "less_100KB", "less_2.4349MB", "geq_100KB", "geq_2.4349MB", "geq_1MB", "geq_10MB"] + range_throughput = [[], [], [], [], [], [], []] + range_num_flows = [0, 0, 0, 0, 0, 0, 0] + range_low_eq = [0, 0, 0, 1, 1, 1, 1] + range_high_eq = [0, 0, 0, 1, 1, 1, 1] + + # Group flows by size range and calculate throughput statistics + for _, row in df.iterrows(): + flow_size = row['flow_size_bytes'] + throughput = row['throughput_mbps'] + + # Skip rows with missing or invalid data + if pd.isna(flow_size) or pd.isna(throughput) or flow_size <= 0 or throughput <= 0: + continue + + # Categorize by flow size range + for j in range(len(range_name)): + if ((range_low[j] == -1 or + (range_low_eq[j] == 0 and flow_size > range_low[j]) or + (range_low_eq[j] == 1 and flow_size >= range_low[j])) and + (range_high[j] == -1 or + (range_high_eq[j] == 0 and flow_size < range_high[j]) or + (range_high_eq[j] == 1 and flow_size <= range_high[j]))): + + range_throughput[j].append(throughput) + range_num_flows[j] += 1 + + # Calculate statistics for each flow size range + for j in range(len(range_name)): + if range_num_flows[j] > 0: + statistics[f'{range_name[j]}_num_flows'] = range_num_flows[j] + statistics[f'{range_name[j]}_throughput_mean_Mbps'] = np.mean(range_throughput[j]) + statistics[f'{range_name[j]}_throughput_median_Mbps'] = np.median(range_throughput[j]) + statistics[f'{range_name[j]}_throughput_std_Mbps'] = np.std(range_throughput[j]) + statistics[f'{range_name[j]}_throughput_99th_Mbps'] = np.percentile(range_throughput[j], 99) + statistics[f'{range_name[j]}_throughput_99.9th_Mbps'] = np.percentile(range_throughput[j], 99.9) + statistics[f'{range_name[j]}_throughput_1th_Mbps'] = np.percentile(range_throughput[j], 1) + if len(range_throughput[j]) > 10: # Only calculate if enough data points + try: + statistics[f'{range_name[j]}_throughput_0.1th_Mbps'] = np.percentile(range_throughput[j], 0.1) + except: + statistics[f'{range_name[j]}_throughput_0.1th_Mbps'] = statistics[f'{range_name[j]}_throughput_1th_Mbps'] + + # Create a scatter plot of throughput vs flow size + plt.figure(figsize=(10, 6)) + plt.scatter(df['flow_size_bytes'], df['throughput_mbps'], alpha=0.6) + plt.xscale('log') + plt.xlabel('Flow Size (bytes)') + plt.ylabel('Throughput (Mbps)') + plt.title('Throughput vs Flow Size') + plt.grid(True, which="both", ls="--", linewidth=0.5) + plt.tight_layout() + plt.savefig(f'{analysis_folder_path}/throughput_vs_flowsize.png') + + # Create a CDF plot of throughput for each flow size category + plt.figure(figsize=(10, 6)) + for j in range(len(range_name)): + if range_num_flows[j] > 0: + sorted_throughput = np.sort(range_throughput[j]) + cdf = np.arange(1, len(sorted_throughput) + 1) / len(sorted_throughput) + plt.plot(sorted_throughput, cdf, label=range_name[j]) + + plt.xlabel('Throughput (Mbps)') + plt.ylabel('CDF') + plt.title('CDF of Throughput by Flow Size Category') + plt.grid(True, linestyle='--', linewidth=0.5) + plt.legend() + plt.tight_layout() + plt.savefig(f'{analysis_folder_path}/throughput_cdf.png') + + # Create a box plot of throughput for each flow size category + plt.figure(figsize=(12, 6)) + + # Prepare data for boxplot + box_data = [] + box_labels = [] + + for j in range(len(range_name)): + if range_num_flows[j] > 0 and range_name[j] != "all": + box_data.append(range_throughput[j]) + box_labels.append(range_name[j]) + + plt.boxplot(box_data, labels=box_labels, showfliers=False) + plt.ylabel('Throughput (Mbps)') + plt.title('Throughput Distribution by Flow Size Category') + plt.grid(True, linestyle='--', alpha=0.7) + plt.xticks(rotation=45) + plt.tight_layout() + plt.savefig(f'{analysis_folder_path}/throughput_boxplot.png') + + # Write statistics to file + print('Writing to result file throughput.statistics...') + with open(f'{analysis_folder_path}/throughput.statistics', 'w+') as outfile: + for key, value in sorted(statistics.items()): + outfile.write(str(key) + "=" + str(value) + "\n") + + # Print summary statistics + print("\nSummary of Throughput Statistics by Flow Size Category:") + print("Flow Size Category | Mean (Mbps) | Median (Mbps) | 99th %ile (Mbps)") + print("------------------------|--------------|---------------|------------------") + for j in range(len(range_name)): + if range_num_flows[j] > 0: + mean_mbps = statistics.get(f"{range_name[j]}_throughput_mean_Mbps", 0) + median_mbps = statistics.get(f"{range_name[j]}_throughput_median_Mbps", 0) + p99_mbps = statistics.get(f"{range_name[j]}_throughput_99th_Mbps", 0) + print(f"{range_name[j].ljust(24)} | {mean_mbps:12.2f} | {median_mbps:13.2f} | {p99_mbps:16.2f}") + +def main(): + # Path to the CSV file with parsed throughput data + csv_file_path = "throughput_data.csv" + + # Check if a custom file path was provided + if len(sys.argv) > 1: + csv_file_path = sys.argv[1] + + # Analyze throughput + analyze_throughput(csv_file_path) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercises/basic/basic.p4 b/exercises/basic/basic.p4 index 53cf3451..586ee0b7 100644 --- a/exercises/basic/basic.p4 +++ b/exercises/basic/basic.p4 @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: Apache-2.0 /* -*- P4_16 -*- */ #include #include @@ -22,7 +21,7 @@ header ethernet_t { header ipv4_t { bit<4> version; bit<4> ihl; - bit<8> diffserv; + bit<8> tos; bit<16> totalLen; bit<16> identification; bit<3> flags; @@ -34,13 +33,40 @@ header ipv4_t { ip4Addr_t dstAddr; } +header tcp_t { + bit<16> srcPort; + bit<16> dstPort; + bit<32> seqNo; + bit<32> ackNo; + bit<4> dataOffset; + bit<3> res; + bit<3> ecn; + bit<6> ctrl; + bit<16> window; + bit<16> checksum; + bit<16> urgentPtr; +} + struct metadata { - /* empty */ + bit<32> rank; + // bit<32> queue_index; + // bit<32> tree_node_lower; + // bit<32> tree_node_upper; + // bit<32> left_child_lower; + // bit<32> left_child_upper; + // bit<32> right_child_lower; + // bit<32> right_child_upper; + bit<32> l1_t; + bit<32> l2_t; + bit<32> l3_t; + bit<32> t; + bit<32> cm; } struct headers { ethernet_t ethernet; ipv4_t ipv4; + tcp_t tcp; } /************************************************************************* @@ -53,46 +79,72 @@ parser MyParser(packet_in packet, inout standard_metadata_t standard_metadata) { state start { - /* TODO: add parser logic */ - transition accept; + transition parse_ethernet; } -} + state parse_ethernet { + packet.extract(hdr.ethernet); + transition select(hdr.ethernet.etherType) { + TYPE_IPV4: parse_ipv4; + default: accept; + } + } -/************************************************************************* -************ C H E C K S U M V E R I F I C A T I O N ************* -*************************************************************************/ + state parse_ipv4 { + packet.extract(hdr.ipv4); + transition select(hdr.ipv4.protocol) { + 0x06: parse_tcp; + default: accept; + } + } -control MyVerifyChecksum(inout headers hdr, inout metadata meta) { - apply { } + state parse_tcp { + packet.extract(hdr.tcp); + transition accept; + } } - /************************************************************************* ************** I N G R E S S P R O C E S S I N G ******************* *************************************************************************/ +register>(7) cml_registers; // 7 entries for cml +register>(7) cmr_registers; // 7 entries for cmr + control MyIngress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { + + bit<48> in_flow_id = 0; + bit<32> in_flow_size = 0; + action drop() { mark_to_drop(standard_metadata); } action ipv4_forward(macAddr_t dstAddr, egressSpec_t port) { - /* - Action function for forwarding IPv4 packets. + standard_metadata.egress_spec = port; + hdr.ethernet.srcAddr = hdr.ethernet.dstAddr; + hdr.ethernet.dstAddr = dstAddr; + hdr.ipv4.ttl = hdr.ipv4.ttl - 1; + } - This function is responsible for forwarding IPv4 packets to the specified - destination MAC address and egress port. + // beta + action congruity_metric(bit<32> left_bound, bit<32> right_bound) { + meta.cm = left_bound; + // meta.cm = (left_bound >> 1) + (left_bound >> 3) + (right_bound >> 2) + (right_bound >> 3); + // meta.cm = (left_bound >> 1) + (left_bound >> 3) + (right_bound >> 2) + (right_bound >> 3); + } - Parameters: - - dstAddr: Destination MAC address of the packet. - - port: Egress port where the packet should be forwarded. + // alpha + action threshold(bit<32> left_bound, bit<32> right_bound) { + meta.t = right_bound; + // meta.t = (left_bound >> 2) + (left_bound >> 3) + (right_bound >> 1) + (right_bound >> 3); + } - TODO: Implement the logic for forwarding the IPv4 packet based on the - destination MAC address and egress port. - */ + action assign_flow_id(bit<48> flow_id, bit<32> flow_size) { + in_flow_id = flow_id; + in_flow_size = flow_size; // Store flow size in metadata } table ipv4_lpm { @@ -108,11 +160,132 @@ control MyIngress(inout headers hdr, default_action = NoAction(); } + table lookup_flow_id { + key = { + hdr.ipv4.srcAddr: lpm; + } + actions = { + assign_flow_id; + NoAction; + } + size = 1024; + default_action = NoAction(); + } + apply { - /* TODO: fix ingress control logic - * - ipv4_lpm should be applied only when IPv4 header is valid - */ - ipv4_lpm.apply(); + + lookup_flow_id.apply(); + if (hdr.ipv4.isValid()) { + // meta.rank = (bit<32>)hdr.ipv4.tos << 4; + // log_msg("Rank of the packet is: {}", {meta.rank}); + + bit<32> cml_val; + bit<32> cmr_val; + + + + if (hdr.tcp.isValid()) { + if (in_flow_size > 0) { + if (in_flow_size - (bit<32>)hdr.tcp.seqNo > 0) { + meta.rank = in_flow_size - (bit<32>)hdr.tcp.seqNo; + } else { + meta.rank = 0; + } + }else { + meta.rank = 0; + } + } + else { + meta.rank = 0; + } + + // log_msg("Rank of the packet is: {}", {meta.rank}); + + cml_registers.read(cml_val, 0); + cmr_registers.read(cmr_val, 0); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cml_registers.read(cml_val, 2); + cmr_registers.read(cmr_val, 2); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cml_registers.read(cml_val, 6); + cmr_registers.read(cmr_val, 6); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(6, meta.rank); + standard_metadata.priority = 0; + } else { + cml_registers.write(6, meta.rank); + standard_metadata.priority = 1; + } + cml_registers.read(cml_val, 6); + cmr_registers.read(cmr_val, 6); + congruity_metric(cml_val, cmr_val); + cmr_registers.write(2, meta.cm); + } else { + cml_registers.read(cml_val, 5); + cmr_registers.read(cmr_val, 5); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(5, meta.rank); + standard_metadata.priority = 2; + } else { + cml_registers.write(5, meta.rank); + standard_metadata.priority = 3; + } + cml_registers.read(cml_val, 5); + cmr_registers.read(cmr_val, 5); + congruity_metric(cml_val, cmr_val); + cml_registers.write(2, meta.cm); + } + cml_registers.read(cml_val, 2); + cmr_registers.read(cmr_val, 2); + congruity_metric(cml_val, cmr_val); + cml_registers.write(0, meta.cm); + } else { + cml_registers.read(cml_val, 1); + cmr_registers.read(cmr_val, 1); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cml_registers.read(cml_val, 4); + cmr_registers.read(cmr_val, 4); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(4, meta.rank); + standard_metadata.priority = 4; + } else { + cml_registers.write(4, meta.rank); + standard_metadata.priority = 5; + } + cml_registers.read(cml_val, 4); + cmr_registers.read(cmr_val, 4); + congruity_metric(cml_val, cmr_val); + cmr_registers.write(1, meta.cm); + } else { + cml_registers.read(cml_val, 3); + cmr_registers.read(cmr_val, 3); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(3, meta.rank); + standard_metadata.priority = 6; + } else { + cml_registers.write(3, meta.rank); + standard_metadata.priority = 7; + } + cml_registers.read(cml_val, 3); + cmr_registers.read(cmr_val, 3); + congruity_metric(cml_val, cmr_val); + cml_registers.write(1, meta.cm); + } + cml_registers.read(cml_val, 1); + cmr_registers.read(cmr_val, 1); + congruity_metric(cml_val, cmr_val); + cml_registers.write(0, meta.cm); + } + + ipv4_lpm.apply(); + } } } @@ -123,20 +296,24 @@ control MyIngress(inout headers hdr, control MyEgress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - apply { } + apply { } } /************************************************************************* ************* C H E C K S U M C O M P U T A T I O N ************** *************************************************************************/ +control MyVerifyChecksum(inout headers hdr, inout metadata meta) { + apply { } +} + control MyComputeChecksum(inout headers hdr, inout metadata meta) { apply { update_checksum( hdr.ipv4.isValid(), { hdr.ipv4.version, hdr.ipv4.ihl, - hdr.ipv4.diffserv, + hdr.ipv4.tos, hdr.ipv4.totalLen, hdr.ipv4.identification, hdr.ipv4.flags, @@ -150,26 +327,15 @@ control MyComputeChecksum(inout headers hdr, inout metadata meta) { } } - /************************************************************************* *********************** D E P A R S E R ******************************* *************************************************************************/ control MyDeparser(packet_out packet, in headers hdr) { apply { - /* - Control function for deparser. - - This function is responsible for constructing the output packet by appending - headers to it based on the input headers. - - Parameters: - - packet: Output packet to be constructed. - - hdr: Input headers to be added to the output packet. - - TODO: Implement the logic for constructing the output packet by appending - headers based on the input headers. - */ + packet.emit(hdr.ethernet); + packet.emit(hdr.ipv4); + packet.emit(hdr.tcp); } } @@ -184,4 +350,4 @@ MyIngress(), MyEgress(), MyComputeChecksum(), MyDeparser() -) main; +) main; \ No newline at end of file diff --git a/exercises/basic/calculate_data_transfer.py b/exercises/basic/calculate_data_transfer.py new file mode 100755 index 00000000..27af872d --- /dev/null +++ b/exercises/basic/calculate_data_transfer.py @@ -0,0 +1,266 @@ +#!/usr/bin/env python3 +import os +import re +import json +import pandas as pd +import matplotlib.pyplot as plt +import numpy as np + +def read_flow_mapping(): + mapping_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'flow_mapping_info.json') + with open(mapping_file, 'r') as f: + mapping_data = json.load(f) + return mapping_data + +def parse_sender_log(host_id): + sender_log = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'outputs', f'sender_{host_id}.txt') + if not os.path.exists(sender_log): + return 0, 0, None + + try: + with open(sender_log, 'r') as f: + content = f.read() + packet_counts = re.findall(r'This host has sent\s+(\d+) packets until now : (\d+\.\d+)', content) + if packet_counts: + max_packets = max(int(count) for count, _ in packet_counts) + timestamps = [float(timestamp) for _, timestamp in packet_counts] + start_time = min(timestamps) if timestamps else None + data_sent = max_packets * 1000 + return max_packets, data_sent, start_time + except Exception as e: + print(f"Error reading sender log for {host_id}: {e}") + return 0, 0, None + +def parse_receiver_log(host_id): + receiver_log = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'outputs', f'receiver_{host_id}.txt') + if not os.path.exists(receiver_log): + return 0, 0, None + + try: + with open(receiver_log, 'r') as f: + content = f.read() + received_timestamps = re.findall(r'packet is received at time : (\d+\.\d+)', content) + packets_received = len(received_timestamps) + end_time = max(float(t) for t in received_timestamps) if received_timestamps else None + data_received = packets_received * 1000 + return packets_received, data_received, end_time + except Exception as e: + print(f"Error reading receiver log for {host_id}: {e}") + return 0, 0, None + +def calculate_data_transfer(): + flow_mappings = read_flow_mapping() + results = [] + + for flow in flow_mappings: + source_host = flow['source'] + dest_host = flow['destination'] + flow_id = flow['flow_id'] + flow_size = flow['flow_size'] + + packets_sent, data_sent, start_time = parse_sender_log(source_host) + packets_received, data_received, end_time = parse_receiver_log(dest_host) + + completion_percentage = round((data_received / flow_size) * 100, 2) if flow_size > 0 else 0 + + results.append({ + 'flow_id': flow_id, + 'source': source_host, + 'destination': dest_host, + 'flow_size': flow_size, + 'packets_sent': packets_sent, + 'data_sent_bytes': data_sent, + 'packets_received': packets_received, + 'data_received_bytes': data_received, + 'data_transfer_ratio': round(data_received / data_sent, 2) if data_sent > 0 else 0, + 'completion_percentage': completion_percentage, + 'start_time': start_time, + 'end_time': end_time + }) + + return results + +def save_plots(results, output_dir): + # Create output directory if it doesn't exist + if not os.path.exists(output_dir): + os.makedirs(output_dir) + + # Create dataframe from results + df = pd.DataFrame(results) + + # Save completion percentage plot (original) + plt.figure(figsize=(14, 8)) + plt.bar(df['flow_id'], df['completion_percentage'], alpha=0.8, color='green') + plt.axhline(y=100, color='r', linestyle='--', alpha=0.5) + plt.xlabel('Flow ID', fontsize=12) + plt.ylabel('Completion Percentage (%)', fontsize=12) + plt.title('Flow Completion Percentage', fontsize=14) + plt.xticks(df['flow_id'], rotation=90) + plt.tight_layout() + plt.savefig(os.path.join(output_dir, 'flow_completion_percentage.png')) + plt.close() + + # Create flow size vs completion time scatter plot + # Filter out flows with no completion time data + completed_flows = df.dropna(subset=['start_time', 'end_time']).copy() + + if not completed_flows.empty: + # Calculate duration in milliseconds + completed_flows['duration_ms'] = completed_flows.apply( + lambda row: int((row['end_time'] - row['start_time']) * 1000), + axis=1 + ) + + # Create scatter plot + plt.figure(figsize=(14, 8)) + + # Use color to represent completion percentage + scatter = plt.scatter( + completed_flows['flow_size'], + completed_flows['duration_ms'], + c=completed_flows['completion_percentage'], + cmap='viridis', + alpha=0.7, + s=100 + ) + + # Add colorbar + cbar = plt.colorbar(scatter) + cbar.set_label('Completion Percentage (%)', fontsize=12) + + # Set log scale for x-axis if data spans multiple orders of magnitude + # if completed_flows['flow_size'].max() / completed_flows['flow_size'].min() > 100: + # plt.xscale('log') + # plt.xlabel('Flow Size (bytes) - Log Scale', fontsize=12) + # else: + # plt.xlabel('Flow Size (bytes)', fontsize=12) + + plt.xscale('log') + plt.xlabel('Flow Size (bytes) - Log Scale', fontsize=12) + + plt.ylabel('Flow Completion Time (ns)', fontsize=12) + plt.title('Flow Size vs Completion Time', fontsize=14) + plt.grid(True, alpha=0.3) + + # Add trend line + if len(completed_flows) > 1: + x = completed_flows['flow_size'] + y = completed_flows['duration_ms'] + + # If x-axis is log scale, fit against log of flow size + if plt.gca().get_xscale() == 'log': + z = np.polyfit(np.log10(x), y, 1) + p = np.poly1d(z) + x_trend = np.logspace(np.log10(x.min()), np.log10(x.max()), 100) + y_trend = p(np.log10(x_trend)) + plt.plot(x_trend, y_trend, 'r--', alpha=0.7, + label=f'Trend: y = {z[0]:.2f}*log10(x) + {z[1]:.2f}') + else: + z = np.polyfit(x, y, 1) + p = np.poly1d(z) + x_trend = np.linspace(x.min(), x.max(), 100) + y_trend = p(x_trend) + plt.plot(x_trend, y_trend, 'r--', alpha=0.7, + label=f'Trend: y = {z[0]:.2f}x + {z[1]:.2f}') + + plt.legend(fontsize=10) + + plt.tight_layout() + plt.savefig(os.path.join(output_dir, 'flow_size_vs_completion_time.png')) + plt.close() + +def main(): + print("Calculating data transfer for each flow...") + + # Ask for model name + model_name = input("Enter the model name for storing results (p->pifo, pf->pFabric, pe->pieo, etc.): ") + + # Ask for run number or identifier + run_id = input("Enter run identifier or number (e.g., run1, test2, etc.): ") + + # Create model directory + model_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'results', model_name) + if not os.path.exists(model_dir): + os.makedirs(model_dir) + print(f"Created model directory: {model_dir}") + + # Create run-specific directory within the model directory + run_dir = os.path.join(model_dir, run_id) + if not os.path.exists(run_dir): + os.makedirs(run_dir) + print(f"Created run directory: {run_dir}") + + # Calculate data transfer + results = calculate_data_transfer() + + if results: + # Sort by flow ID + results.sort(key=lambda x: x['flow_id']) + + # Print summary + print("\nFlow Transfer Summary:") + print("---------------------") + print(f"{'FlowId':<8} {'Src':<6} {'Dst':<6} {'Sent (byte)':<13} {'Received (byte)':<15} {'Total (byte)':<13} {'Duration (ms)':<15} {'Progress':<10}") + print("-" * 90) + + for result in results: + # Calculate duration + if result['start_time'] is not None and result['end_time'] is not None: + duration_ms = int((result['end_time'] - result['start_time']) * 1000) + else: + duration_ms = "N/A" + + # Format for display + duration_str = f"{duration_ms}" if duration_ms != "N/A" else "N/A" + + # Calculate progress as received data compared to sent data (not total flow size) + if result['data_sent_bytes'] > 0: + progress_percentage = round((result['data_received_bytes'] / result['data_sent_bytes']) * 100, 2) + else: + progress_percentage = 0 + + progress_str = f"{progress_percentage}%" if progress_percentage > 0 else "0%" + + print(f"{result['flow_id']:<8} {result['source']:<6} {result['destination']:<6} " + f"{result['data_sent_bytes']:<13} {result['data_received_bytes']:<15} {result['flow_size']:<13} " + f"{duration_str:<15} {progress_str:<10}") + + # Save results to CSV with run identifier in filename + df_results = [] + for result in results: + result_copy = dict(result) + if result['start_time'] is not None and result['end_time'] is not None: + result_copy['duration_ms'] = int((result['end_time'] - result['start_time']) * 1000) + else: + result_copy['duration_ms'] = None + + # Add progress percentage data + if result['data_sent_bytes'] > 0: + result_copy['progress_percentage'] = round((result['data_received_bytes'] / result['data_sent_bytes']) * 100, 2) + else: + result_copy['progress_percentage'] = 0 + + df_results.append(result_copy) + + df = pd.DataFrame(df_results) + + # Save in both the model directory and the run-specific directory + output_file_run = os.path.join(run_dir, 'flow_data_transfer.csv') + df.to_csv(output_file_run, index=False) + + # Also save with run identifier in the model directory for easy comparison + output_file_model = os.path.join(model_dir, f'flow_data_transfer_{run_id}.csv') + df.to_csv(output_file_model, index=False) + + print(f"\nDetailed results saved to:") + print(f" 1. {output_file_run}") + print(f" 2. {output_file_model}") + + # Generate plots with run identifier in filenames + save_plots(results, run_dir) + print(f"Plots generated in {run_dir}") + else: + print("No results were calculated.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercises/basic/cleanup_p4.py b/exercises/basic/cleanup_p4.py new file mode 100755 index 00000000..c109daef --- /dev/null +++ b/exercises/basic/cleanup_p4.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 +import os +import subprocess +import re +import signal +import time + +def find_process_using_port(port): + """Find process ID using a specific port""" + try: + # Run netstat command to find processes using ports + cmd = f"sudo netstat -tuln | grep :{port}" + result = subprocess.run(cmd, shell=True, capture_output=True, text=True) + + if result.stdout: + print(f"Port {port} is in use.") + + # Find the process ID using lsof + cmd = f"sudo lsof -i :{port} -t" + result = subprocess.run(cmd, shell=True, capture_output=True, text=True) + + if result.stdout: + pid = result.stdout.strip() + return pid + except Exception as e: + print(f"Error finding process: {e}") + + return None + +def kill_process(pid): + """Kill a process by its process ID""" + try: + # Get process name for better logging + cmd = f"ps -p {pid} -o comm=" + result = subprocess.run(cmd, shell=True, capture_output=True, text=True) + process_name = result.stdout.strip() if result.stdout else "Unknown" + + print(f"Attempting to terminate process {pid} ({process_name})...") + + # Try to terminate gracefully first + os.kill(int(pid), signal.SIGTERM) + time.sleep(1) # Give it a moment to shut down + + # Check if it's still running + try: + os.kill(int(pid), 0) # Signal 0 is used to check if process exists + print(f"Process {pid} did not terminate gracefully, using SIGKILL...") + os.kill(int(pid), signal.SIGKILL) + except OSError: + print(f"Process {pid} terminated successfully.") + return True + + except Exception as e: + print(f"Error killing process: {e}") + + return False + +def cleanup_p4_ports(): + """Clean up commonly used P4 ports""" + # List of common P4 ports that might remain bound + p4_ports = [50051, 50052, 50053, 50054, 50055, 50056, 50057, 50058, 50059, 50060, + 50061, 50062, 50063, + 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099,] + + killed_processes = [] + + for port in p4_ports: + pid = find_process_using_port(port) + if pid: + if kill_process(pid): + killed_processes.append((pid, port)) + + return killed_processes + +def clean_mininet(): + """Run Mininet cleanup command""" + print("Cleaning up Mininet...") + try: + subprocess.run("sudo mn -c", shell=True, check=True) + print("Mininet cleanup completed successfully.") + except subprocess.CalledProcessError as e: + print(f"Mininet cleanup failed: {e}") + +def main(): + print("Starting P4 program cleanup...") + + # Kill processes using P4 ports + killed_processes = cleanup_p4_ports() + + if killed_processes: + print(f"\nKilled {len(killed_processes)} processes that were holding ports:") + for pid, port in killed_processes: + print(f" - PID {pid} (Port {port})") + else: + print("No processes found holding P4 ports.") + + # Clean Mininet + clean_mininet() + + print("\nCleanup completed. You should now be able to run your P4 program.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercises/basic/flow_analysis.csv b/exercises/basic/flow_analysis.csv new file mode 100644 index 00000000..2ab8e09c --- /dev/null +++ b/exercises/basic/flow_analysis.csv @@ -0,0 +1,73 @@ +flow_id,sender,receiver,flow_size,total_sent,total_received,duration,progress,source_ip,destination_ip +1,h416,h74,667000,666624.0,666624.0,2.8759,99.94362818590704,10.0.4.31,10.0.7.7 +2,h116,h810,667000,666624.0,666624.0,2.4849,99.94362818590704,10.0.1.31,10.0.8.19 +3,h111,h814,6000,6000.64,6000.64,0.0074,100.01066666666667,10.0.1.21,10.0.8.27 +4,h24,h911,6000,6000.64,6000.64,0.0055,100.01066666666667,10.0.2.7,10.0.9.21 +5,h21,h615,6000,6000.64,6000.64,0.0046,100.01066666666667,10.0.2.1,10.0.6.29 +6,h314,h59,133000,133120.0,133120.0,0.7598,100.09022556390978,10.0.3.27,10.0.5.17 +7,h13,h816,6000,6000.64,6000.64,0.004,100.01066666666667,10.0.1.5,10.0.8.31 +8,h47,h78,53000,53043.2,53043.2,0.2945,100.08150943396225,10.0.4.13,10.0.7.15 +9,h414,h76,3333000,3334471.68,3334471.68,6.3465,100.04415481548155,10.0.4.27,10.0.7.11 +10,h41,h610,19000,19046.4,19046.4,0.1063,100.2442105263158,10.0.4.1,10.0.6.19 +11,h18,h913,13000,13004.8,13004.8,0.0095,100.03692307692307,10.0.1.15,10.0.9.25 +12,h32,h711,3333000,3334471.68,3334471.68,8.6431,100.04415481548155,10.0.3.3,10.0.7.21 +13,h115,h811,13000,13004.8,13004.8,0.0101,100.03692307692307,10.0.1.29,10.0.8.21 +14,h52,h64,6000,6000.64,6000.64,0.0036,100.01066666666667,10.0.5.3,10.0.6.7 +15,h211,h86,53000,53043.2,53043.2,0.2503,100.08150943396225,10.0.2.21,10.0.8.11 +16,h45,h79,19000,19046.4,19046.4,0.1046,100.2442105263158,10.0.4.9,10.0.7.17 +17,h43,h69,667000,666624.0,666624.0,1.7445,99.94362818590704,10.0.4.5,10.0.6.17 +18,h214,h713,133000,133120.0,133120.0,0.666,100.09022556390978,10.0.2.27,10.0.7.25 +19,h35,h97,53000,53043.2,53043.2,0.382,100.08150943396225,10.0.3.9,10.0.9.13 +20,h215,h85,19000,19046.4,19046.4,0.1159,100.2442105263158,10.0.2.29,10.0.8.9 +21,h33,h511,20000000,20027801.6,20027801.6,13.2504,100.13900800000002,10.0.3.5,10.0.5.21 +22,h34,h98,667000,666624.0,666624.0,1.8328,99.94362818590704,10.0.3.7,10.0.9.15 +23,h213,h910,13000,13004.8,13004.8,0.0148,100.03692307692307,10.0.2.25,10.0.9.19 +24,h23,h89,6000,6000.64,6000.64,0.0045,100.01066666666667,10.0.2.5,10.0.8.17 +25,h37,h510,133000,133120.0,133120.0,0.707,100.09022556390978,10.0.3.13,10.0.5.19 +26,h311,h95,19000,19046.4,19046.4,0.1716,100.2442105263158,10.0.3.21,10.0.9.9 +27,h114,h812,133000,133120.0,133120.0,0.6784,100.09022556390978,10.0.1.27,10.0.8.23 +28,h412,h91,19000,19046.4,19046.4,0.1306,100.2442105263158,10.0.4.23,10.0.9.1 +29,h25,h715,6667000,6668943.36,6668943.36,10.1505,100.02914894255288,10.0.2.9,10.0.7.29 +30,h51,h65,1333000,1331691.52,1331691.52,3.035,99.90183945986497,10.0.5.1,10.0.6.9 +31,h36,h96,667000,666624.0,666624.0,2.247,99.94362818590704,10.0.3.11,10.0.9.11 +32,h410,h92,53000,53043.2,53043.2,0.3223,100.08150943396225,10.0.4.19,10.0.9.3 +33,h415,h75,133000,133120.0,133120.0,0.6679,100.09022556390978,10.0.4.29,10.0.7.9 +34,h17,h914,133000,133120.0,133120.0,1.0207,100.09022556390978,10.0.1.13,10.0.9.27 +35,h212,h512,6000,6000.64,6000.64,0.0057,100.01066666666667,10.0.2.23,10.0.5.23 +36,h27,h513,1333000,1331691.52,1331691.52,3.8186,99.90183945986497,10.0.2.13,10.0.5.25 +37,h316,h611,1333000,1331691.52,1331691.52,3.769,99.90183945986497,10.0.3.31,10.0.6.21 +38,h411,h67,13000,13004.8,13004.8,0.0032,100.03692307692307,10.0.4.21,10.0.6.13 +39,h14,h616,133000,133120.0,133120.0,0.8354,100.09022556390978,10.0.1.7,10.0.6.31 +40,h38,h84,6667000,6668943.36,6668943.36,6.1046,100.02914894255288,10.0.3.15,10.0.8.7 +41,h57,h72,133000,133120.0,133120.0,0.809,100.09022556390978,10.0.5.13,10.0.7.3 +42,h313,h612,53000,53043.2,53043.2,0.4625,100.08150943396225,10.0.3.25,10.0.6.23 +43,h310,h710,133000,133120.0,133120.0,0.9129,100.09022556390978,10.0.3.19,10.0.7.19 +44,h42,h94,6000,6000.64,6000.64,0.0109,100.01066666666667,10.0.4.3,10.0.9.7 +45,h28,h714,133000,133120.0,133120.0,0.852,100.09022556390978,10.0.2.15,10.0.7.27 +46,h210,h614,1333000,1331691.52,1331691.52,3.061,99.90183945986497,10.0.2.19,10.0.6.27 +47,h56,h61,3333000,3334471.68,3334471.68,4.9551,100.04415481548155,10.0.5.11,10.0.6.1 +48,h53,h73,6000,6000.64,6000.64,0.0021,100.01066666666667,10.0.5.5,10.0.7.5 +49,h216,h712,20000000,20027801.6,20027801.6,14.68,100.13900800000002,10.0.2.31,10.0.7.23 +50,h58,h71,3333000,3334471.68,3334471.68,9.7648,100.04415481548155,10.0.5.15,10.0.7.1 +51,h113,h813,1333000,1331691.52,1331691.52,3.6441,99.90183945986497,10.0.1.25,10.0.8.25 +52,h29,h87,6000,6000.64,6000.64,0.0062,100.01066666666667,10.0.2.17,10.0.8.13 +53,h55,h62,1333000,1331691.52,1331691.52,4.2789,99.90183945986497,10.0.5.9,10.0.6.3 +54,h26,h88,133000,133120.0,133120.0,0.3391,100.09022556390978,10.0.2.11,10.0.8.15 +55,h312,h83,53000,53043.2,53043.2,0.3324,100.08150943396225,10.0.3.23,10.0.8.5 +56,h22,h514,6000,6000.64,6000.64,0.0049,100.01066666666667,10.0.2.3,10.0.5.27 +57,h44,h81,1333000,1331691.52,1331691.52,3.9016,99.90183945986497,10.0.4.7,10.0.8.1 +58,h49,h68,133000,133120.0,133120.0,0.4723,100.09022556390978,10.0.4.17,10.0.6.15 +59,h39,h613,19000,19046.4,19046.4,0.1384,100.2442105263158,10.0.3.17,10.0.6.25 +60,h46,h93,3333000,3334471.68,3334471.68,4.0581,100.04415481548155,10.0.4.11,10.0.9.5 +61,h413,h66,133000,133120.0,133120.0,0.669,100.09022556390978,10.0.4.25,10.0.6.11 +62,h112,h912,667000,666624.0,666624.0,2.5277,99.94362818590704,10.0.1.23,10.0.9.23 +63,h19,h716,3333000,3334471.68,3334471.68,10.5516,100.04415481548155,10.0.1.17,10.0.7.31 +64,h54,h63,53000,53043.2,53043.2,0.2668,100.08150943396225,10.0.5.7,10.0.6.5 +65,h12,h516,133000,133120.0,133120.0,0.5118,100.09022556390978,10.0.1.3,10.0.5.31 +66,h11,h916,6667000,6668943.36,6668943.36,9.9458,100.02914894255288,10.0.1.1,10.0.9.31 +67,h315,h82,19000,19046.4,19046.4,0.1668,100.2442105263158,10.0.3.29,10.0.8.3 +68,h110,h815,6667000,6668943.36,6668943.36,9.8053,100.02914894255288,10.0.1.19,10.0.8.29 +69,h31,h99,133000,133120.0,133120.0,0.9257,100.09022556390978,10.0.3.1,10.0.9.17 +70,h15,h915,3333000,3334471.68,3334471.68,6.8928,100.04415481548155,10.0.1.9,10.0.9.29 +71,h16,h515,6667000,6668943.36,6668943.36,11.1086,100.02914894255288,10.0.1.11,10.0.5.29 +72,h48,h77,667000,666624.0,666624.0,2.6959,99.94362818590704,10.0.4.15,10.0.7.13 diff --git a/exercises/basic/flow_mapping_info.csv b/exercises/basic/flow_mapping_info.csv new file mode 100644 index 00000000..1d2e5608 --- /dev/null +++ b/exercises/basic/flow_mapping_info.csv @@ -0,0 +1,73 @@ +source,source_ip,destination,destination_ip,flow_id,flow_size +h416,10.0.4.31,h74,10.0.7.7,1,667000 +h116,10.0.1.31,h810,10.0.8.19,2,667000 +h111,10.0.1.21,h814,10.0.8.27,3,6000 +h24,10.0.2.7,h911,10.0.9.21,4,6000 +h21,10.0.2.1,h615,10.0.6.29,5,6000 +h314,10.0.3.27,h59,10.0.5.17,6,133000 +h13,10.0.1.5,h816,10.0.8.31,7,6000 +h47,10.0.4.13,h78,10.0.7.15,8,53000 +h414,10.0.4.27,h76,10.0.7.11,9,3333000 +h41,10.0.4.1,h610,10.0.6.19,10,19000 +h18,10.0.1.15,h913,10.0.9.25,11,13000 +h32,10.0.3.3,h711,10.0.7.21,12,3333000 +h115,10.0.1.29,h811,10.0.8.21,13,13000 +h52,10.0.5.3,h64,10.0.6.7,14,6000 +h211,10.0.2.21,h86,10.0.8.11,15,53000 +h45,10.0.4.9,h79,10.0.7.17,16,19000 +h43,10.0.4.5,h69,10.0.6.17,17,667000 +h214,10.0.2.27,h713,10.0.7.25,18,133000 +h35,10.0.3.9,h97,10.0.9.13,19,53000 +h215,10.0.2.29,h85,10.0.8.9,20,19000 +h33,10.0.3.5,h511,10.0.5.21,21,20000000 +h34,10.0.3.7,h98,10.0.9.15,22,667000 +h213,10.0.2.25,h910,10.0.9.19,23,13000 +h23,10.0.2.5,h89,10.0.8.17,24,6000 +h37,10.0.3.13,h510,10.0.5.19,25,133000 +h311,10.0.3.21,h95,10.0.9.9,26,19000 +h114,10.0.1.27,h812,10.0.8.23,27,133000 +h412,10.0.4.23,h91,10.0.9.1,28,19000 +h25,10.0.2.9,h715,10.0.7.29,29,6667000 +h51,10.0.5.1,h65,10.0.6.9,30,1333000 +h36,10.0.3.11,h96,10.0.9.11,31,667000 +h410,10.0.4.19,h92,10.0.9.3,32,53000 +h415,10.0.4.29,h75,10.0.7.9,33,133000 +h17,10.0.1.13,h914,10.0.9.27,34,133000 +h212,10.0.2.23,h512,10.0.5.23,35,6000 +h27,10.0.2.13,h513,10.0.5.25,36,1333000 +h316,10.0.3.31,h611,10.0.6.21,37,1333000 +h411,10.0.4.21,h67,10.0.6.13,38,13000 +h14,10.0.1.7,h616,10.0.6.31,39,133000 +h38,10.0.3.15,h84,10.0.8.7,40,6667000 +h57,10.0.5.13,h72,10.0.7.3,41,133000 +h313,10.0.3.25,h612,10.0.6.23,42,53000 +h310,10.0.3.19,h710,10.0.7.19,43,133000 +h42,10.0.4.3,h94,10.0.9.7,44,6000 +h28,10.0.2.15,h714,10.0.7.27,45,133000 +h210,10.0.2.19,h614,10.0.6.27,46,1333000 +h56,10.0.5.11,h61,10.0.6.1,47,3333000 +h53,10.0.5.5,h73,10.0.7.5,48,6000 +h216,10.0.2.31,h712,10.0.7.23,49,20000000 +h58,10.0.5.15,h71,10.0.7.1,50,3333000 +h113,10.0.1.25,h813,10.0.8.25,51,1333000 +h29,10.0.2.17,h87,10.0.8.13,52,6000 +h55,10.0.5.9,h62,10.0.6.3,53,1333000 +h26,10.0.2.11,h88,10.0.8.15,54,133000 +h312,10.0.3.23,h83,10.0.8.5,55,53000 +h22,10.0.2.3,h514,10.0.5.27,56,6000 +h44,10.0.4.7,h81,10.0.8.1,57,1333000 +h49,10.0.4.17,h68,10.0.6.15,58,133000 +h39,10.0.3.17,h613,10.0.6.25,59,19000 +h46,10.0.4.11,h93,10.0.9.5,60,3333000 +h413,10.0.4.25,h66,10.0.6.11,61,133000 +h112,10.0.1.23,h912,10.0.9.23,62,667000 +h19,10.0.1.17,h716,10.0.7.31,63,3333000 +h54,10.0.5.7,h63,10.0.6.5,64,53000 +h12,10.0.1.3,h516,10.0.5.31,65,133000 +h11,10.0.1.1,h916,10.0.9.31,66,6667000 +h315,10.0.3.29,h82,10.0.8.3,67,19000 +h110,10.0.1.19,h815,10.0.8.29,68,6667000 +h31,10.0.3.1,h99,10.0.9.17,69,133000 +h15,10.0.1.9,h915,10.0.9.29,70,3333000 +h16,10.0.1.11,h515,10.0.5.29,71,6667000 +h48,10.0.4.15,h77,10.0.7.13,72,667000 diff --git a/exercises/basic/json_to_csv.py b/exercises/basic/json_to_csv.py new file mode 100644 index 00000000..6c0c0f1b --- /dev/null +++ b/exercises/basic/json_to_csv.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import json +import csv +import os + +def convert_json_to_csv(json_file, csv_file): + """Convert the flow mapping JSON file to CSV format.""" + try: + # Read the JSON file + with open(json_file, 'r') as f: + data = json.load(f) + + # Write to CSV + with open(csv_file, 'w', newline='') as csvfile: + fieldnames = ['source', 'source_ip', 'destination', 'destination_ip', 'flow_id', 'flow_size'] + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + writer.writeheader() + writer.writerows(data) + + print(f"Successfully converted {json_file} to {csv_file}") + return True + except Exception as e: + print(f"Error converting JSON to CSV: {e}") + return False + +if __name__ == "__main__": + json_file = 'flow_mapping_info.json' + csv_file = 'flow_mapping_info.csv' + convert_json_to_csv(json_file, csv_file) \ No newline at end of file diff --git a/exercises/basic/parse_throughput.py b/exercises/basic/parse_throughput.py new file mode 100755 index 00000000..efe00d25 --- /dev/null +++ b/exercises/basic/parse_throughput.py @@ -0,0 +1,301 @@ +#!/usr/bin/env python3 + +import os +import re +import csv +import sys +import pandas as pd + +def extract_ip_from_string(text): + """Extract IP addresses from a string.""" + ip_pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b' + ips = re.findall(ip_pattern, text) + return ips + +def load_flow_mapping(mapping_path): + """Load the flow mapping information from CSV file.""" + if not os.path.exists(mapping_path): + print(f"Warning: Flow mapping file {mapping_path} not found!") + return {} + + # Dictionary for IP to host mapping + ip_to_host = {} + # Dictionary for IP to flow_id mapping + ip_to_flow_id = {} + # Dictionary for mapping source_ip to destination_ip + source_to_dest = {} + # Dictionary for storing flow sizes + flow_id_to_size = {} + + try: + # Read the flow mapping CSV file + mapping_df = pd.read_csv(mapping_path) + + # Create mappings + for _, row in mapping_df.iterrows(): + # Map source_ip to source (host ID) + if 'source_ip' in mapping_df.columns and 'source' in mapping_df.columns: + src_ip = row['source_ip'] + src_host = row['source'] + ip_to_host[src_ip] = src_host.replace('h', '') # Remove 'h' prefix if present + + # Map destination_ip to destination (host ID) + if 'destination_ip' in mapping_df.columns and 'destination' in mapping_df.columns: + dst_ip = row['destination_ip'] + dst_host = row['destination'] + ip_to_host[dst_ip] = dst_host.replace('h', '') # Remove 'h' prefix if present + + # Map IPs to flow_id + if 'source_ip' in mapping_df.columns and 'destination_ip' in mapping_df.columns and 'flow_id' in mapping_df.columns: + src_ip = row['source_ip'] + dst_ip = row['destination_ip'] + flow_id = row['flow_id'] + source_to_dest[src_ip] = dst_ip + ip_to_flow_id[(src_ip, dst_ip)] = flow_id + + # Map flow_id to flow_size + if 'flow_id' in mapping_df.columns and 'flow_size' in mapping_df.columns: + flow_id = row['flow_id'] + flow_size = row['flow_size'] + flow_id_to_size[flow_id] = flow_size + + print(f"Loaded mappings for {len(ip_to_host)} hosts and {len(ip_to_flow_id)} flows") + except Exception as e: + print(f"Error loading flow mapping file: {e}") + + return ip_to_host, ip_to_flow_id, source_to_dest, flow_id_to_size + +def verify_connection(source_ip, dest_ip, source_to_dest): + """Verify if the connection between source and destination IP is valid based on mapping.""" + if source_ip in source_to_dest: + expected_dest = source_to_dest[source_ip] + if expected_dest == dest_ip: + return True + else: + print(f"Warning: Unexpected destination IP for {source_ip}. Expected {expected_dest}, got {dest_ip}") + return False + return False # No mapping available to verify + +def parse_receiver_files(directory_path, ip_to_host=None, ip_to_flow_id=None, source_to_dest=None, flow_id_to_size=None): + """Parse all receiver files and extract throughput information.""" + throughput_data = [] + + # List all files in the directory + files = [f for f in os.listdir(directory_path) if f.startswith('receiver_') and f.endswith('.txt')] + + print(f"Found {len(files)} receiver files to process.") + + for filename in files: + file_path = os.path.join(directory_path, filename) + + # Extract the host ID from the filename (e.g., h616 from receiver_h616.txt) + host_match = re.search(r'receiver_h(\d+)\.txt', filename) + if host_match: + dest_id = host_match.group(1) + else: + dest_id = "unknown" + + try: + with open(file_path, 'r') as file: + content = file.read() + + # Extract the local and remote IPs + connection_line = None + for line in content.split('\n'): + if "local" in line and "connected with" in line: + connection_line = line + break + + if not connection_line: + print(f"Couldn't find connection line in {filename}") + continue + + ips = extract_ip_from_string(connection_line) + if len(ips) < 2: + print(f"Couldn't extract IPs from connection line in {filename}") + continue + + local_ip = ips[0] # Receiver IP + remote_ip = ips[1] # Sender IP + + # Get source ID from mapping file if available + if ip_to_host and remote_ip in ip_to_host: + source_id = ip_to_host[remote_ip] + else: + # Fallback: Extract from hostname or IP + ip_parts = remote_ip.split('.') + if len(ip_parts) == 4: + source_id = ip_parts[2] # Using the third octet as host identifier + print(f"Warning: Using fallback ID extraction for {remote_ip} -> {source_id}") + else: + source_id = "unknown" + print(f"Warning: Could not determine source ID for {remote_ip}") + + # Verify the connection + connection_verified = verify_connection(remote_ip, local_ip, source_to_dest) + if not connection_verified: + print(f"Note: Connection from {remote_ip} to {local_ip} not found in mapping file") + + # Get flow_id from mapping + flow_id = None + if ip_to_flow_id and (remote_ip, local_ip) in ip_to_flow_id: + flow_id = ip_to_flow_id[(remote_ip, local_ip)] + + # Extract bandwidth information + bandwidth_line = None + for line in content.split('\n'): + if "sec" in line and "Bytes" in line and "bits/sec" in line: + bandwidth_line = line + break + + if not bandwidth_line: + print(f"Couldn't find bandwidth line in {filename}") + continue + + # Parse the bandwidth line which looks like: + # [ 1] 0.0000-0.5362 sec 130 KBytes 1.98 Mbits/sec + parts = bandwidth_line.strip().split() + + # Find the interval + interval_str = None + for i, part in enumerate(parts): + if "sec" in part and "-" in parts[i-1]: + interval_str = parts[i-1] + break + + if not interval_str: + print(f"Couldn't parse interval in {filename}") + continue + + try: + # Extract start and end times + start_time, end_time = map(float, interval_str.split('-')) + duration = end_time - start_time + + # Find transfer amount + transfer_value = None + transfer_unit = None + for i, part in enumerate(parts): + if part in ["Bytes", "KBytes", "MBytes", "GBytes"] and i > 0: + transfer_value = float(parts[i-1]) + transfer_unit = part + break + + if not transfer_value: + print(f"Couldn't parse transfer amount in {filename}") + continue + + # Convert transfer to bytes + flow_size = transfer_value + if transfer_unit == "KBytes": + flow_size = transfer_value * 1024 + elif transfer_unit == "MBytes": + flow_size = transfer_value * 1024 * 1024 + elif transfer_unit == "GBytes": + flow_size = transfer_value * 1024 * 1024 * 1024 + + # Find bandwidth + bandwidth_value = None + bandwidth_unit = None + for i, part in enumerate(parts): + if "bits/sec" in part and i > 0: + bandwidth_value = float(parts[i-1]) + bandwidth_unit = part + break + + if not bandwidth_value: + print(f"Couldn't parse bandwidth in {filename}") + continue + + # Convert bandwidth to Mbits/sec + if "Kbits/sec" in bandwidth_unit: + bandwidth_value /= 1000.0 + elif "Gbits/sec" in bandwidth_unit: + bandwidth_value *= 1000.0 + + # Get expected flow size from mapping if available + expected_flow_size = None + if flow_id and flow_id in flow_id_to_size: + expected_flow_size = flow_id_to_size[flow_id] + + # Add to the throughput data + throughput_data.append({ + 'flow_id': flow_id if flow_id else "unknown", + 'source_id': source_id, + 'dest_id': dest_id, + 'source_ip': remote_ip, + 'dest_ip': local_ip, + 'throughput_mbps': bandwidth_value, + 'flow_size_bytes': flow_size, + 'expected_flow_size': expected_flow_size, + 'duration': duration + }) + print(f"Successfully parsed {filename}: Flow ID {flow_id}, {source_id} -> {dest_id}, {bandwidth_value} Mbps") + except Exception as e: + print(f"Error parsing values from {filename}: {e}") + except Exception as e: + print(f"Error reading file {filename}: {e}") + + return throughput_data + +def save_to_csv(data, output_path): + """Save the extracted data to a CSV file.""" + if not data: + print("No throughput data to save!") + return + + fieldnames = ['flow_id', 'source_id', 'dest_id', 'source_ip', 'dest_ip', + 'throughput_mbps', 'flow_size_bytes', 'expected_flow_size', 'duration'] + + with open(output_path, 'w', newline='') as csvfile: + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + writer.writeheader() + writer.writerows(data) + + print(f"CSV file saved to {output_path} with {len(data)} records") + +def main(): + # Directory containing the receiver files + directory_path = '/home/nwlab/p4/tutorials/exercises/basic/outputs' + + # Path to flow mapping file (try several potential locations) + mapping_paths = [ + '/home/nwlab/p4/tutorials/exercises/basic/flow_mapping_info.csv', + '/home/nwlab/p4/tutorials/exercises/basic/flow_mapping.csv', + '/home/nwlab/p4/tutorials/exercises/basic/host_mapping.csv', + '/home/nwlab/p4/tutorials/exercises/basic/outputs/flow_mapping.csv' + ] + + # Try to find the mapping file + ip_to_host = {} + ip_to_flow_id = {} + source_to_dest = {} + flow_id_to_size = {} + + for mapping_path in mapping_paths: + if os.path.exists(mapping_path): + print(f"Found mapping file at: {mapping_path}") + ip_to_host, ip_to_flow_id, source_to_dest, flow_id_to_size = load_flow_mapping(mapping_path) + if ip_to_host or ip_to_flow_id: + break + + # Allow providing a different directory via command line + if len(sys.argv) > 1: + directory_path = sys.argv[1] + + # Allow specifying a custom mapping file + if len(sys.argv) > 2: + mapping_path = sys.argv[2] + ip_to_host, ip_to_flow_id, source_to_dest, flow_id_to_size = load_flow_mapping(mapping_path) + + # Output CSV file path + output_csv_path = '/home/nwlab/p4/tutorials/exercises/basic/throughput_data.csv' + + print(f"Parsing receiver files from: {directory_path}") + throughput_data = parse_receiver_files(directory_path, ip_to_host, ip_to_flow_id, source_to_dest, flow_id_to_size) + print(f"Extracted throughput data for {len(throughput_data)} connections") + + save_to_csv(throughput_data, output_csv_path) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercises/basic/plot_per_flow_throughput.py b/exercises/basic/plot_per_flow_throughput.py new file mode 100644 index 00000000..4d6d09f7 --- /dev/null +++ b/exercises/basic/plot_per_flow_throughput.py @@ -0,0 +1,134 @@ +\ +import json +import matplotlib.pyplot as plt +from collections import defaultdict +import os + +INPUT_JSON = "./outputs/iperf_server_log.json" +OUTPUT_PLOT = "./outputs/per_flow_throughput.png" +OUTPUT_DIR = "./outputs" + +def analyze_and_plot(json_path, plot_path): + """ + Parses iperf JSON output and plots throughput per flow over time. + + Args: + json_path (str): Path to the iperf JSON log file. + plot_path (str): Path to save the output plot image. + """ + try: + with open(json_path, 'r') as f: + try: + data = json.load(f) + except json.JSONDecodeError as e: + print(f"Error decoding JSON from {json_path}: {e}") + # Attempt to read line by line if full load fails + print("Attempting line-by-line parsing (might be incomplete)...") + f.seek(0) + intervals = [] + for line in f: + line = line.strip() + if not line: continue + try: + # This is a basic attempt, iperf JSON isn't usually line-delimited + # Might need more robust handling if the file is truly malformed + # but structured like the example. + # Focus on extracting 'intervals' if possible. + if '"intervals":' in line and line.endswith('['): + # Simplistic start, assumes intervals array follows + pass # Need more context to parse this robustly + elif line.startswith('{') and '"streams":' in line and '"sum":' in line: + intervals.append(json.loads(line)) + + except json.JSONDecodeError: + print(f"Skipping invalid JSON line: {line[:100]}...") + if not intervals: + print("Could not extract interval data line-by-line.") + return + data = {'intervals': intervals} # Reconstruct structure partially + + except FileNotFoundError: + print(f"Error: Input file not found at {json_path}") + return + except Exception as e: + print(f"Error reading file {json_path}: {e}") + return + + if 'intervals' not in data or not data['intervals']: + print(f"No 'intervals' data found in {json_path}") + return + + flow_data = defaultdict(lambda: {'times': [], 'throughputs_mbps': []}) + + print(f"Processing {len(data['intervals'])} intervals...") + + for interval in data['intervals']: + if not isinstance(interval, dict) or 'streams' not in interval or 'sum' not in interval: + # print("Skipping interval with missing 'streams' or 'sum'") + continue # Skip intervals that don't have the expected structure + + interval_end_time = interval['sum'].get('end') + if interval_end_time is None: + # print("Skipping interval with missing 'end' time in 'sum'") + continue # Skip if we can't get a time point + + for stream in interval.get('streams', []): + # Check if stream is a dict and has the required keys + if not isinstance(stream, dict): + # print(f"Skipping non-dict stream entry in interval ending at {interval_end_time}") + continue + + socket_id = stream.get('socket') + bits_per_second = stream.get('bits_per_second') + + # Ensure we have valid data to plot + if socket_id is not None and bits_per_second is not None: + flow_data[socket_id]['times'].append(interval_end_time) + # Convert bits/sec to Mbps + flow_data[socket_id]['throughputs_mbps'].append(bits_per_second / 1_000_000) + # else: + # print(f"Skipping stream in interval ending at {interval_end_time} due to missing socket or bps: {stream}") + + + if not flow_data: + print("No valid stream data found to plot.") + return + + print(f"Found data for flows (socket IDs): {list(flow_data.keys())}") + + # Plotting + plt.figure(figsize=(12, 6)) + + for socket_id, values in flow_data.items(): + if values['times'] and values['throughputs_mbps']: # Ensure there's data to plot for the flow + # Sort by time just in case intervals weren't perfectly ordered + sorted_data = sorted(zip(values['times'], values['throughputs_mbps'])) + times_sorted, throughputs_sorted = zip(*sorted_data) + plt.plot(times_sorted, throughputs_sorted, marker='o', linestyle='-', label=f'Flow {socket_id}') + # else: + # print(f"Skipping plot for flow {socket_id} due to insufficient data points.") + + + plt.title('Per-Flow Throughput vs. Time') + plt.xlabel('Time (seconds)') + plt.ylabel('Throughput (Mbps)') + plt.legend() + plt.grid(True) + plt.tight_layout() + + # Ensure output directory exists + os.makedirs(os.path.dirname(plot_path), exist_ok=True) + + try: + plt.savefig(plot_path) + print(f"Plot saved to {plot_path}") + except Exception as e: + print(f"Error saving plot to {plot_path}: {e}") + +if __name__ == "__main__": + # Get script's directory to build absolute paths + script_dir = os.path.dirname(os.path.abspath(__file__)) + abs_json_path = os.path.join(script_dir, INPUT_JSON) + abs_plot_path = os.path.join(script_dir, OUTPUT_PLOT) + analyze_and_plot(abs_json_path, abs_plot_path) + diff --git a/exercises/basic/pod-topo/s1-runtime.json b/exercises/basic/pod-topo/s1-runtime.json index be07b9aa..9e89425d 100644 --- a/exercises/basic/pod-topo/s1-runtime.json +++ b/exercises/basic/pod-topo/s1-runtime.json @@ -30,28 +30,6 @@ "dstAddr": "08:00:00:00:02:22", "port": 2 } - }, - { - "table": "MyIngress.ipv4_lpm", - "match": { - "hdr.ipv4.dstAddr": ["10.0.3.3", 32] - }, - "action_name": "MyIngress.ipv4_forward", - "action_params": { - "dstAddr": "08:00:00:00:03:00", - "port": 3 - } - }, - { - "table": "MyIngress.ipv4_lpm", - "match": { - "hdr.ipv4.dstAddr": ["10.0.4.4", 32] - }, - "action_name": "MyIngress.ipv4_forward", - "action_params": { - "dstAddr": "08:00:00:00:04:00", - "port": 4 - } } ] } diff --git a/exercises/basic/pod-topo/topology.json b/exercises/basic/pod-topo/topology.json index 588d9f02..429e8185 100644 --- a/exercises/basic/pod-topo/topology.json +++ b/exercises/basic/pod-topo/topology.json @@ -15,36 +15,11 @@ "route add default gw 10.0.2.20 dev eth0", "arp -i eth0 -s 10.0.2.20 08:00:00:00:02:00" ] - }, - "h3": { - "ip": "10.0.3.3/24", - "mac": "08:00:00:00:03:33", - "commands": [ - "route add default gw 10.0.3.30 dev eth0", - "arp -i eth0 -s 10.0.3.30 08:00:00:00:03:00" - ] - }, - "h4": { - "ip": "10.0.4.4/24", - "mac": "08:00:00:00:04:44", - "commands": [ - "route add default gw 10.0.4.40 dev eth0", - "arp -i eth0 -s 10.0.4.40 08:00:00:00:04:00" - ] } }, "switches": { "s1": { "runtime_json": "pod-topo/s1-runtime.json" - }, - "s2": { - "runtime_json": "pod-topo/s2-runtime.json" - }, - "s3": { - "runtime_json": "pod-topo/s3-runtime.json" - }, - "s4": { - "runtime_json": "pod-topo/s4-runtime.json" } }, "links": [ @@ -55,30 +30,6 @@ [ "h2", "s1-p2" - ], - [ - "s1-p3", - "s3-p1" - ], - [ - "s1-p4", - "s4-p2" - ], - [ - "h3", - "s2-p1" - ], - [ - "h4", - "s2-p2" - ], - [ - "s2-p3", - "s4-p1" - ], - [ - "s2-p4", - "s3-p2" ] ] } \ No newline at end of file diff --git a/exercises/basic/receive.py b/exercises/basic/receive.py index 91b95766..7a374859 100755 --- a/exercises/basic/receive.py +++ b/exercises/basic/receive.py @@ -1,61 +1,24 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: GPL-2.0-only # Reason-GPL: import-scapy -import os + import sys -from scapy.all import ( - TCP, - FieldLenField, - FieldListField, - IntField, - IPOption, - ShortField, - get_if_list, - sniff -) -from scapy.layers.inet import _IPOption_HDR - - -def get_if(): - ifs=get_if_list() - iface=None - for i in get_if_list(): - if "eth0" in i: - iface=i - break; - if not iface: - print("Cannot find eth0 interface") - exit(1) - return iface - -class IPOption_MRI(IPOption): - name = "MRI" - option = 31 - fields_desc = [ _IPOption_HDR, - FieldLenField("length", None, fmt="B", - length_of="swids", - adjust=lambda pkt,l:l+4), - ShortField("count", 0), - FieldListField("swids", - [], - IntField("", 0), - length_from=lambda pkt:pkt.count*4) ] +from scapy.all import sniff + + def handle_pkt(pkt): - if TCP in pkt and pkt[TCP].dport == 1234: - print("got a packet") - pkt.show2() - # hexdump(pkt) - sys.stdout.flush() + print("got a packet") + pkt.show2() + sys.stdout.flush() def main(): - ifaces = [i for i in os.listdir('/sys/class/net/') if 'eth' in i] - iface = ifaces[0] + iface = 'eth0' print("sniffing on %s" % iface) sys.stdout.flush() - sniff(iface = iface, - prn = lambda x: handle_pkt(x)) + sniff(iface=iface, prn=lambda x: handle_pkt(x)) + if __name__ == '__main__': main() diff --git a/exercises/basic/s1-runtime.json b/exercises/basic/s1-runtime.json new file mode 100644 index 00000000..a4ef3f82 --- /dev/null +++ b/exercises/basic/s1-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s2-runtime.json b/exercises/basic/s2-runtime.json new file mode 100644 index 00000000..c6b380ba --- /dev/null +++ b/exercises/basic/s2-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s3-runtime.json b/exercises/basic/s3-runtime.json new file mode 100644 index 00000000..e2dde642 --- /dev/null +++ b/exercises/basic/s3-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s4-runtime.json b/exercises/basic/s4-runtime.json new file mode 100644 index 00000000..e9114ce2 --- /dev/null +++ b/exercises/basic/s4-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s5-runtime.json b/exercises/basic/s5-runtime.json new file mode 100644 index 00000000..dad6a234 --- /dev/null +++ b/exercises/basic/s5-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s6-runtime.json b/exercises/basic/s6-runtime.json new file mode 100644 index 00000000..b3d4eed2 --- /dev/null +++ b/exercises/basic/s6-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s7-runtime.json b/exercises/basic/s7-runtime.json new file mode 100644 index 00000000..c3fc65c9 --- /dev/null +++ b/exercises/basic/s7-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s8-runtime.json b/exercises/basic/s8-runtime.json new file mode 100644 index 00000000..103cc24b --- /dev/null +++ b/exercises/basic/s8-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/s9-runtime.json b/exercises/basic/s9-runtime.json new file mode 100644 index 00000000..2ae3464a --- /dev/null +++ b/exercises/basic/s9-runtime.json @@ -0,0 +1,1062 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.1", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:01", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.3", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:02", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.5", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:03", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.7", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:04", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.9", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:05", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.11", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:06", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.13", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:07", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.15", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:08", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.17", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:09", + "port": 9 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.19", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:10", + "port": 10 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.21", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:11", + "port": 11 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.23", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:12", + "port": 12 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.25", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:13", + "port": 13 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.27", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:14", + "port": 14 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.29", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:15", + "port": 15 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.31", 32] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:16", + "port": 16 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 17 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 18 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 19 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 20 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 20 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} \ No newline at end of file diff --git a/exercises/basic/send.py b/exercises/basic/send.py index 926562c0..dd7d65fc 100755 --- a/exercises/basic/send.py +++ b/exercises/basic/send.py @@ -1,39 +1,180 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: GPL-2.0-only # Reason-GPL: import-scapy -import random + +import argparse import socket -import sys +from time import sleep +import random +import time # Added for time.time() if needed, though not directly used in the final UDP logic -from scapy.all import IP, TCP, Ether, get_if_hwaddr, get_if_list, sendp +from scapy.all import IP, TCP, UDP, Ether, Raw, get_if_hwaddr, get_if_list, sendp def get_if(): - ifs=get_if_list() - iface=None # "h1-eth0" + iface = None for i in get_if_list(): if "eth0" in i: - iface=i - break; + iface = i + break if not iface: print("Cannot find eth0 interface") exit(1) return iface + def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--p", help="Protocol name To send TCP/UDP etc packets", type=str, required=True) + parser.add_argument("--des", help="IP address of the destination", type=str, required=True) + parser.add_argument("--tos", help="Type of Service value for IP header (integer)", type=int, required=True) + parser.add_argument("--dur", help="Duration in seconds to send packets", type=str, required=True) # Kept as string for try-except int conversion + args = parser.parse_args() - if len(sys.argv)<3: - print('pass 2 arguments: ""') - exit(1) + duration_seconds = 0 + try: + duration_seconds = int(args.dur) + if duration_seconds <= 0: + print("Error: Duration must be a positive integer.") + return + except ValueError: + print("Error: Duration must be a valid integer.") + return - addr = socket.gethostbyname(sys.argv[1]) + addr = socket.gethostbyname(args.des) iface = get_if() - print("sending on interface %s to %s" % (iface, str(addr))) - pkt = Ether(src=get_if_hwaddr(iface), dst='ff:ff:ff:ff:ff:ff') - pkt = pkt /IP(dst=addr) / TCP(dport=1234, sport=random.randint(49152,65535)) / sys.argv[2] - pkt.show2() - sendp(pkt, iface=iface, verbose=False) + if args.p == 'UDP': + TARGET_TOTAL_PACKET_SIZE_BYTES = 128 # Define fixed total packet size + DEFAULT_PAYLOAD_CONTENT = "DefaultPayload" # Define a default payload + + print(f"Configuring for fixed UDP packet size: {TARGET_TOTAL_PACKET_SIZE_BYTES} bytes with ToS: {args.tos}.") + print(f"Using default payload content: '{DEFAULT_PAYLOAD_CONTENT}'") + + fixed_sport = random.randint(49152, 65535) + pkt_header = Ether(src=get_if_hwaddr(iface), dst="ff:ff:ff:ff:ff:ff") / \ + IP(dst=addr, tos=args.tos) / \ + UDP(dport=4321, sport=fixed_sport) + + header_actual_size = len(pkt_header) + desired_payload_size = TARGET_TOTAL_PACKET_SIZE_BYTES - header_actual_size + + if desired_payload_size < 0: + print(f"Error: Target packet size {TARGET_TOTAL_PACKET_SIZE_BYTES} bytes is too small " + f"for headers ({header_actual_size} bytes) and ToS field. Minimum target size: {header_actual_size + 1}.") + return + + default_payload_bytes = DEFAULT_PAYLOAD_CONTENT.encode('utf-8') + current_payload_len = len(default_payload_bytes) + + if current_payload_len < desired_payload_size: + padding = b'\x00' * (desired_payload_size - current_payload_len) + final_payload_bytes = default_payload_bytes + padding + print(f" Default payload (UTF-8 encoded: {current_payload_len} bytes) padded to {desired_payload_size} bytes.") + elif current_payload_len > desired_payload_size: + final_payload_bytes = default_payload_bytes[:desired_payload_size] + print(f" Default payload (UTF-8 encoded: {current_payload_len} bytes) truncated to {desired_payload_size} bytes.") + else: + final_payload_bytes = default_payload_bytes + print(f" Default payload (UTF-8 encoded: {current_payload_len} bytes) fits desired payload size {desired_payload_size} bytes exactly.") + + pkt_template = pkt_header / Raw(final_payload_bytes) + + packet_size_bytes = len(pkt_template) + + if packet_size_bytes != TARGET_TOTAL_PACKET_SIZE_BYTES: + print(f"Warning: Actual packet size {packet_size_bytes} does not match target {TARGET_TOTAL_PACKET_SIZE_BYTES}. Check logic.") + + packet_size_bits = packet_size_bytes * 8 + + target_rate_gbps = 0.1 # MODIFIED: Reduced target data rate + target_rate_bps = target_rate_gbps * 1e9 + + if packet_size_bits == 0: + print("Error: Packet size in bits is zero, cannot calculate packets per second.") + return + num_packets_per_second_ideal = target_rate_bps / packet_size_bits + interval_between_packets = 1.0 / num_packets_per_second_ideal + + estimated_total_packets = int(round(num_packets_per_second_ideal * duration_seconds)) + + if estimated_total_packets <= 0 and duration_seconds > 0: + print(f"Warning: With the current settings (rate: {target_rate_gbps} Gbps, packet size: {packet_size_bytes} bytes), " + f"the estimated number of packets for {duration_seconds}s is {estimated_total_packets}. " + f"This might result in very few or no packets being sent if the interval is too large.") + + print(f"Preparing to send UDP packets to {args.des} ({addr}) via {iface}:") + print(f" IP ToS value: {args.tos}.") + print(f" Targeting data rate: ~{target_rate_gbps} Gbps.") + print(f" Effective payload size (after padding/truncation of default content): {desired_payload_size} bytes.") + print(f" Total fixed packet size (on wire): {packet_size_bytes} bytes ({packet_size_bits} bits).") + print(f" Calculated ideal packets per second: {num_packets_per_second_ideal:.2f} PPS.") + print(f" Targeting inter-packet interval: {interval_between_packets:.9f} seconds.") + print(f" Estimated packets to send over {duration_seconds} seconds: {estimated_total_packets}.") + print(f" Packet structure summary:") + pkt_template.show2() + + print(f"\nStarting UDP transmission for {duration_seconds} seconds...") + + start_time = time.time() + end_time = start_time + duration_seconds + packets_sent_count = 0 + next_send_time = start_time + + try: + while time.time() < end_time: + current_loop_entry_time = time.time() + + wait_time = next_send_time - current_loop_entry_time + if wait_time > 0: + time.sleep(wait_time) + + if time.time() >= end_time: + break + + sendp(pkt_template, iface=iface, verbose=False) + packets_sent_count += 1 + + next_send_time += interval_between_packets + + except KeyboardInterrupt: + print("\nUDP transmission interrupted by user.") + except Exception as e: + print(f"An error occurred during UDP transmission: {e}") + finally: + actual_run_duration = time.time() - start_time + print(f"Finished UDP transmission.") + print(f" Target duration: {duration_seconds:.2f} seconds.") + print(f" Actual run duration: {actual_run_duration:.2f} seconds.") + print(f" Packets sent: {packets_sent_count}.") + if actual_run_duration > 0 and packets_sent_count > 0: + achieved_bps = (packets_sent_count * packet_size_bits) / actual_run_duration + achieved_gbps = achieved_bps / 1e9 + print(f" Achieved data rate: {achieved_gbps:.3f} Gbps ({achieved_bps / 1e6:.2f} Mbps).") + elif packets_sent_count == 0: + print(" No packets were sent.") + + elif args.p == 'TCP': + DEFAULT_TCP_PAYLOAD = "DefaultTCPPayload" + print(f"Configuring TCP packet with ToS: {args.tos} and default payload: '{DEFAULT_TCP_PAYLOAD}'.") + + pkt = Ether(src=get_if_hwaddr(iface), dst="ff:ff:ff:ff:ff:ff") / \ + IP(dst=addr, tos=args.tos) / \ + TCP() / \ + DEFAULT_TCP_PAYLOAD + pkt.show2() + try: + print(f"Starting TCP transmission for {duration_seconds} seconds (1 packet per second)...") + for i in range(duration_seconds): + sendp(pkt, iface=iface, verbose=False) + sleep(1) + print(f"Finished sending {duration_seconds} TCP packets.") + except KeyboardInterrupt: + print("\nTCP transmission interrupted by user.") + except Exception as e: + print(f"An error occurred during TCP transmission: {e}") + else: + print(f"Error: Protocol '{args.p}' not supported. Please use 'UDP' or 'TCP'.") if __name__ == '__main__': diff --git a/exercises/basic/solution/CT-tos.p4 b/exercises/basic/solution/CT-tos.p4 new file mode 100644 index 00000000..cba77e0c --- /dev/null +++ b/exercises/basic/solution/CT-tos.p4 @@ -0,0 +1,298 @@ +/* -*- P4_16 -*- */ +#include +#include + +const bit<16> TYPE_IPV4 = 0x800; + +/************************************************************************* +*********************** H E A D E R S *********************************** +*************************************************************************/ + +typedef bit<9> egressSpec_t; +typedef bit<48> macAddr_t; +typedef bit<32> ip4Addr_t; + +header ethernet_t { + macAddr_t dstAddr; + macAddr_t srcAddr; + bit<16> etherType; +} + +header ipv4_t { + bit<4> version; + bit<4> ihl; + bit<8> tos; + bit<16> totalLen; + bit<16> identification; + bit<3> flags; + bit<13> fragOffset; + bit<8> ttl; + bit<8> protocol; + bit<16> hdrChecksum; + ip4Addr_t srcAddr; + ip4Addr_t dstAddr; +} + +// header tcp_t { +// bit<16> srcPort; +// bit<16> dstPort; +// bit<32> seqNo; +// bit<32> ackNo; +// bit<4> dataOffset; +// bit<3> res; +// bit<3> ecn; +// bit<6> ctrl; +// bit<16> window; +// bit<16> checksum; +// bit<16> urgentPtr; +// } + +struct metadata { + bit<32> rank; + // bit<32> queue_index; + // bit<32> tree_node_lower; + // bit<32> tree_node_upper; + // bit<32> left_child_lower; + // bit<32> left_child_upper; + // bit<32> right_child_lower; + // bit<32> right_child_upper; + bit<32> l1_t; + bit<32> l2_t; + bit<32> l3_t; + bit<32> t; + bit<32> cm; +} + +struct headers { + ethernet_t ethernet; + ipv4_t ipv4; +} + +/************************************************************************* +*********************** P A R S E R *********************************** +*************************************************************************/ + +parser MyParser(packet_in packet, + out headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + + state start { + transition parse_ethernet; + } + + state parse_ethernet { + packet.extract(hdr.ethernet); + transition select(hdr.ethernet.etherType) { + TYPE_IPV4: parse_ipv4; + default: accept; + } + } + + state parse_ipv4 { + packet.extract(hdr.ipv4); + transition accept; + } +} + +/************************************************************************* +************** I N G R E S S P R O C E S S I N G ******************* +*************************************************************************/ + +register>(7) cml_registers; // 7 entries for cml +register>(7) cmr_registers; // 7 entries for cmr + +control MyIngress(inout headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + + action drop() { + mark_to_drop(standard_metadata); + } + + action ipv4_forward(macAddr_t dstAddr, egressSpec_t port) { + standard_metadata.egress_spec = port; + hdr.ethernet.srcAddr = hdr.ethernet.dstAddr; + hdr.ethernet.dstAddr = dstAddr; + hdr.ipv4.ttl = hdr.ipv4.ttl - 1; + } + + action congruity_metric(bit<32> left_bound, bit<32> right_bound) { + meta.cm = (left_bound >> 1) + (left_bound >> 3) + (right_bound >> 2) + (right_bound >> 3); + } + + action threshold(bit<32> left_bound, bit<32> right_bound) { + meta.t = (left_bound >> 2) + (left_bound >> 3) + (right_bound >> 1) + (right_bound >> 3); + } + + table ipv4_lpm { + key = { + hdr.ipv4.dstAddr: lpm; + } + actions = { + ipv4_forward; + drop; + NoAction; + } + size = 1024; + default_action = NoAction(); + } + + apply { + if (hdr.ipv4.isValid()) { + meta.rank = (bit<32>)hdr.ipv4.tos << 4; + log_msg("Rank of the packet is: {}", {meta.rank}); + + bit<32> cml_val; + bit<32> cmr_val; + + cml_registers.read(cml_val, 0); + cmr_registers.read(cmr_val, 0); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cml_registers.read(cml_val, 2); + cmr_registers.read(cmr_val, 2); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cml_registers.read(cml_val, 6); + cmr_registers.read(cmr_val, 6); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(6, meta.rank); + standard_metadata.priority = 0; + } else { + cml_registers.write(6, meta.rank); + standard_metadata.priority = 1; + } + cml_registers.read(cml_val, 6); + cmr_registers.read(cmr_val, 6); + congruity_metric(cml_val, cmr_val); + cmr_registers.write(2, meta.cm); + } else { + cml_registers.read(cml_val, 5); + cmr_registers.read(cmr_val, 5); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(5, meta.rank); + standard_metadata.priority = 2; + } else { + cml_registers.write(5, meta.rank); + standard_metadata.priority = 3; + } + cml_registers.read(cml_val, 5); + cmr_registers.read(cmr_val, 5); + congruity_metric(cml_val, cmr_val); + cml_registers.write(2, meta.cm); + } + cml_registers.read(cml_val, 2); + cmr_registers.read(cmr_val, 2); + congruity_metric(cml_val, cmr_val); + cml_registers.write(0, meta.cm); + } else { + cml_registers.read(cml_val, 1); + cmr_registers.read(cmr_val, 1); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cml_registers.read(cml_val, 4); + cmr_registers.read(cmr_val, 4); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(4, meta.rank); + standard_metadata.priority = 4; + } else { + cml_registers.write(4, meta.rank); + standard_metadata.priority = 5; + } + cml_registers.read(cml_val, 4); + cmr_registers.read(cmr_val, 4); + congruity_metric(cml_val, cmr_val); + cmr_registers.write(1, meta.cm); + } else { + cml_registers.read(cml_val, 3); + cmr_registers.read(cmr_val, 3); + threshold(cml_val, cmr_val); + if (meta.rank > meta.t) { + cmr_registers.write(3, meta.rank); + standard_metadata.priority = 6; + } else { + cml_registers.write(3, meta.rank); + standard_metadata.priority = 7; + } + cml_registers.read(cml_val, 3); + cmr_registers.read(cmr_val, 3); + congruity_metric(cml_val, cmr_val); + cml_registers.write(1, meta.cm); + } + cml_registers.read(cml_val, 1); + cmr_registers.read(cmr_val, 1); + congruity_metric(cml_val, cmr_val); + cml_registers.write(0, meta.cm); + } + + ipv4_lpm.apply(); + } + } +} + +/************************************************************************* +**************** E G R E S S P R O C E S S I N G ******************* +*************************************************************************/ + +control MyEgress(inout headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + apply { } +} + +/************************************************************************* +************* C H E C K S U M C O M P U T A T I O N ************** +*************************************************************************/ + +control MyVerifyChecksum(inout headers hdr, inout metadata meta) { + apply { } +} + +control MyComputeChecksum(inout headers hdr, inout metadata meta) { + apply { + update_checksum( + hdr.ipv4.isValid(), + { hdr.ipv4.version, + hdr.ipv4.ihl, + hdr.ipv4.tos, + hdr.ipv4.totalLen, + hdr.ipv4.identification, + hdr.ipv4.flags, + hdr.ipv4.fragOffset, + hdr.ipv4.ttl, + hdr.ipv4.protocol, + hdr.ipv4.srcAddr, + hdr.ipv4.dstAddr }, + hdr.ipv4.hdrChecksum, + HashAlgorithm.csum16); + } +} + +/************************************************************************* +*********************** D E P A R S E R ******************************* +*************************************************************************/ + +control MyDeparser(packet_out packet, in headers hdr) { + apply { + packet.emit(hdr.ethernet); + packet.emit(hdr.ipv4); + // packet.emit(hdr.tcp); + } +} + +/************************************************************************* +*********************** S W I T C H ******************************* +*************************************************************************/ + +V1Switch( +MyParser(), +MyVerifyChecksum(), +MyIngress(), +MyEgress(), +MyComputeChecksum(), +MyDeparser() +) main; \ No newline at end of file diff --git a/exercises/basic/solution/SP_tos.p4 b/exercises/basic/solution/SP_tos.p4 new file mode 100644 index 00000000..01e78c26 --- /dev/null +++ b/exercises/basic/solution/SP_tos.p4 @@ -0,0 +1,283 @@ +/* -*- P4_16 -*- */ +#include +#include + +const bit<16> TYPE_IPV4 = 0x800; + +/************************************************************************* +*********************** H E A D E R S *********************************** +*************************************************************************/ + +typedef bit<9> egressSpec_t; +typedef bit<48> macAddr_t; +typedef bit<32> ip4Addr_t; + +header ethernet_t { + macAddr_t dstAddr; + macAddr_t srcAddr; + bit<16> etherType; +} + +header ipv4_t { + bit<4> version; + bit<4> ihl; + bit<8> tos; + bit<16> totalLen; + bit<16> identification; + bit<3> flags; + bit<13> fragOffset; + bit<8> ttl; + bit<8> protocol; + bit<16> hdrChecksum; + ip4Addr_t srcAddr; + ip4Addr_t dstAddr; +} + +header tcp_t { + bit<16> srcPort; + bit<16> dstPort; + bit<32> seqNo; + bit<32> ackNo; + bit<4> dataOffset; + bit<3> res; + bit<3> ecn; + bit<6> ctrl; + bit<16> window; + bit<16> checksum; + bit<16> urgentPtr; +} + + +struct metadata { + bit<32> current_queue_bound; + bit<32> rank; + // bit<32> flow_id; // Added to store flow ID + // bit<32> flow_size; // Added to store flow size +} + +struct headers { + ethernet_t ethernet; + ipv4_t ipv4; + tcp_t tcp; +} + +/************************************************************************* +*********************** P A R S E R *********************************** +*************************************************************************/ + +parser MyParser(packet_in packet, + out headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + + state start { + transition parse_ethernet; + } + + state parse_ethernet { + packet.extract(hdr.ethernet); + transition select(hdr.ethernet.etherType) { + TYPE_IPV4: parse_ipv4; + default: accept; + } + } + + state parse_ipv4 { + packet.extract(hdr.ipv4); + transition select(hdr.ipv4.protocol) { + 0x06: parse_tcp; + default: accept; + } + } + + state parse_tcp { + packet.extract(hdr.tcp); + transition accept; + } + +} + +/************************************************************************* +************ C H E C K S U M V E R I F I C A T I O N ************* +*************************************************************************/ + +control MyVerifyChecksum(inout headers hdr, inout metadata meta) { + apply { } +} + + +/************************************************************************* +************** I N G R E S S P R O C E S S I N G ******************* +*************************************************************************/ + +control MyIngress(inout headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + + /*Queue with index 0 is the bottom one, with lowest priority*/ + register>(8) queue_bound; + bit<48> in_flow_id = 0; + bit<32> in_flow_size = 0; + + action drop() { + mark_to_drop(standard_metadata); + } + + action ipv4_forward(macAddr_t dstAddr, egressSpec_t port) { + standard_metadata.egress_spec = port; + hdr.ethernet.srcAddr = hdr.ethernet.dstAddr; + hdr.ethernet.dstAddr = dstAddr; + hdr.ipv4.ttl = hdr.ipv4.ttl - 1; + } + + table ipv4_lpm { + key = { + hdr.ipv4.dstAddr: lpm; + } + actions = { + ipv4_forward; + drop; + NoAction; + } + size = 1024; + default_action = NoAction(); + } + + apply { + + if (hdr.ipv4.isValid()) { + + meta.rank = (bit<32>)hdr.ipv4.tos; + + queue_bound.read(meta.current_queue_bound, 0); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)0; + queue_bound.write(0, meta.rank); + } else { + queue_bound.read(meta.current_queue_bound, 1); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)1; + queue_bound.write(1, meta.rank); + } else { + queue_bound.read(meta.current_queue_bound, 2); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)2; + queue_bound.write(2, meta.rank); + } else { + queue_bound.read(meta.current_queue_bound, 3); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)3; + queue_bound.write(3, meta.rank); + } else { + queue_bound.read(meta.current_queue_bound, 4); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)4; + queue_bound.write(4, meta.rank); + } else { + queue_bound.read(meta.current_queue_bound, 5); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)5; + queue_bound.write(5, meta.rank); + } else { + queue_bound.read(meta.current_queue_bound, 6); + if ((meta.current_queue_bound <= meta.rank)) { + standard_metadata.priority = (bit<3>)6; + queue_bound.write(6, meta.rank); + } else { + standard_metadata.priority = (bit<3>)7; + queue_bound.read(meta.current_queue_bound, 7); + + /*Blocking reaction*/ + if(meta.current_queue_bound > meta.rank) { + bit<32> cost = meta.current_queue_bound - meta.rank; + + /*Decrease the bound of all the following queues a factor equal to the cost of the blocking*/ + queue_bound.read(meta.current_queue_bound, 0); + queue_bound.write(0, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.read(meta.current_queue_bound, 1); + queue_bound.write(1, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.read(meta.current_queue_bound, 2); + queue_bound.write(2, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.read(meta.current_queue_bound, 3); + queue_bound.write(3, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.read(meta.current_queue_bound, 4); + queue_bound.write(4, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.read(meta.current_queue_bound, 5); + queue_bound.write(5, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.read(meta.current_queue_bound, 6); + queue_bound.write(6, (bit<32>)(meta.current_queue_bound-cost)); + queue_bound.write(7, meta.rank); + } else { + queue_bound.write(7, meta.rank); + } + } + } + } + } + } + } + } + ipv4_lpm.apply(); + } + } +} + +/************************************************************************* +**************** E G R E S S P R O C E S S I N G ******************* +*************************************************************************/ + +control MyEgress(inout headers hdr, + inout metadata meta, + inout standard_metadata_t standard_metadata) { + apply { + } +} + +/************************************************************************* +************* C H E C K S U M C O M P U T A T I O N ************** +*************************************************************************/ + +control MyComputeChecksum(inout headers hdr, inout metadata meta) { + apply { + update_checksum( + hdr.ipv4.isValid(), + { hdr.ipv4.version, + hdr.ipv4.ihl, + hdr.ipv4.tos, + hdr.ipv4.totalLen, + hdr.ipv4.identification, + hdr.ipv4.flags, + hdr.ipv4.fragOffset, + hdr.ipv4.ttl, + hdr.ipv4.protocol, + hdr.ipv4.srcAddr, + hdr.ipv4.dstAddr }, + hdr.ipv4.hdrChecksum, + HashAlgorithm.csum16); + } +} + +/************************************************************************* +*********************** D E P A R S E R ******************************* +*************************************************************************/ + +control MyDeparser(packet_out packet, in headers hdr) { + apply { + packet.emit(hdr.ethernet); + packet.emit(hdr.ipv4); + packet.emit(hdr.tcp); + } +} + +/************************************************************************* +*********************** S W I T C H ******************************* +*************************************************************************/ + +V1Switch( +MyParser(), +MyVerifyChecksum(), +MyIngress(), +MyEgress(), +MyComputeChecksum(), +MyDeparser() +) main; \ No newline at end of file diff --git a/exercises/basic/solution/basic.p4 b/exercises/basic/solution/basic.p4 index 9640dcfd..7c852f67 100644 --- a/exercises/basic/solution/basic.p4 +++ b/exercises/basic/solution/basic.p4 @@ -1,4 +1,3 @@ -// SPDX-License-Identifier: Apache-2.0 /* -*- P4_16 -*- */ #include #include @@ -22,7 +21,7 @@ header ethernet_t { header ipv4_t { bit<4> version; bit<4> ihl; - bit<8> diffserv; + bit<8> tos; bit<16> totalLen; bit<16> identification; bit<3> flags; @@ -34,13 +33,41 @@ header ipv4_t { ip4Addr_t dstAddr; } +header tcp_t { + bit<16> srcPort; + bit<16> dstPort; + bit<32> seqNo; + bit<32> ackNo; + bit<4> dataOffset; + bit<3> res; + bit<3> ecn; + bit<6> ctrl; + bit<16> window; + bit<16> checksum; + bit<16> urgentPtr; +} + struct metadata { - /* empty */ + bit<32> rank; + bit<32> queue_index; + bit<32> tree_node_lower; + bit<32> tree_node_upper; + bit<32> left_child_lower; + bit<32> left_child_upper; + bit<32> right_child_lower; + bit<32> right_child_upper; + bit<32> avg_bound; + bit<32> level1_avg; + bit<32> level2_avg; + bit<32> level3_avg; + bit<32> avg_left; + bit<32> avg_right; } struct headers { ethernet_t ethernet; ipv4_t ipv4; + tcp_t tcp; } /************************************************************************* @@ -66,20 +93,18 @@ parser MyParser(packet_in packet, state parse_ipv4 { packet.extract(hdr.ipv4); - transition accept; + transition select(hdr.ipv4.protocol) { + 0x06: parse_tcp; + default: accept; + } } + state parse_tcp { + packet.extract(hdr.tcp); + transition accept; + } } -/************************************************************************* -************ C H E C K S U M V E R I F I C A T I O N ************* -*************************************************************************/ - -control MyVerifyChecksum(inout headers hdr, inout metadata meta) { - apply { } -} - - /************************************************************************* ************** I N G R E S S P R O C E S S I N G ******************* *************************************************************************/ @@ -87,10 +112,12 @@ control MyVerifyChecksum(inout headers hdr, inout metadata meta) { control MyIngress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { + + action drop() { mark_to_drop(standard_metadata); } - + action ipv4_forward(macAddr_t dstAddr, egressSpec_t port) { standard_metadata.egress_spec = port; hdr.ethernet.srcAddr = hdr.ethernet.dstAddr; @@ -108,11 +135,29 @@ control MyIngress(inout headers hdr, NoAction; } size = 1024; - default_action = drop(); + default_action = NoAction(); } - + apply { + + // meta.rank = (bit<32>) hdr.ipv4.tos; + if (hdr.ipv4.isValid()) { + // if (meta.rank == 8) { + // standard_metadata.priority = (bit<3>)0; + // } + // else if (meta.rank == 4) { + // standard_metadata.priority = (bit<3>)0; + // } + // else if (meta.rank == 2) { + // standard_metadata.priority = (bit<3>)0; + // } + // else if (meta.rank == 0) { + // standard_metadata.priority = (bit<3>)0; + // } + + // // standard_metadata.priority = (bit<3>)0; + ipv4_lpm.apply(); } } @@ -125,20 +170,24 @@ control MyIngress(inout headers hdr, control MyEgress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - apply { } + apply { } } /************************************************************************* ************* C H E C K S U M C O M P U T A T I O N ************** *************************************************************************/ -control MyComputeChecksum(inout headers hdr, inout metadata meta) { +control MyVerifyChecksum(inout headers hdr, inout metadata meta) { + apply { } +} + +control MyComputeChecksum(inout headers hdr, inout metadata meta) { apply { update_checksum( - hdr.ipv4.isValid(), + hdr.ipv4.isValid(), { hdr.ipv4.version, hdr.ipv4.ihl, - hdr.ipv4.diffserv, + hdr.ipv4.tos, hdr.ipv4.totalLen, hdr.ipv4.identification, hdr.ipv4.flags, @@ -160,6 +209,7 @@ control MyDeparser(packet_out packet, in headers hdr) { apply { packet.emit(hdr.ethernet); packet.emit(hdr.ipv4); + packet.emit(hdr.tcp); } } @@ -174,4 +224,4 @@ MyIngress(), MyEgress(), MyComputeChecksum(), MyDeparser() -) main; +) main; \ No newline at end of file diff --git a/exercises/basic/ss1-runtime.json b/exercises/basic/ss1-runtime.json new file mode 100644 index 00000000..1097c4fb --- /dev/null +++ b/exercises/basic/ss1-runtime.json @@ -0,0 +1,897 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 9 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/ss2-runtime.json b/exercises/basic/ss2-runtime.json new file mode 100644 index 00000000..1097c4fb --- /dev/null +++ b/exercises/basic/ss2-runtime.json @@ -0,0 +1,897 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 9 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/ss3-runtime.json b/exercises/basic/ss3-runtime.json new file mode 100644 index 00000000..1097c4fb --- /dev/null +++ b/exercises/basic/ss3-runtime.json @@ -0,0 +1,897 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 9 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/ss4-runtime.json b/exercises/basic/ss4-runtime.json new file mode 100644 index 00000000..1097c4fb --- /dev/null +++ b/exercises/basic/ss4-runtime.json @@ -0,0 +1,897 @@ +{ "target": "bmv2", + "p4info": "build/basic.p4.p4info.txtpb", + "bmv2_json": "build/basic.json", + "table_entries": [ + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.1.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.2.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.3.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:00", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.4.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:04:00", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.5.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.6.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:00", + "port": 6 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.7.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:00", + "port": 7 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.8.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:00", + "port": 8 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": ["10.0.9.0", 24] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:09:00", + "port": 9 + } + }, + { + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 1, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 2, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 3, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 4, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 5, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 6, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 7, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 8, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 9, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 10, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 11, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 12, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 13, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 14, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 15, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 16, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 17, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 18, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 19, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 20, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 21, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 22, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 23, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 24, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 25, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 26, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.27", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 27, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 28, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 29, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 30, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 31, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 32, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 33, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 34, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 35, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 36, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 37, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.21", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 38, + "flow_size": 13000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 39, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 40, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.13", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 41, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 42, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 43, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 44, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 45, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 46, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 47, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.5", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 48, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.31", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 49, + "flow_size": 20000000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 50, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 51, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 52, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 53, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 54, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 55, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.2.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 56, + "flow_size": 6000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 57, + "flow_size": 1333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 58, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 59, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 60, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.25", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 61, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.23", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 62, + "flow_size": 667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.17", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 63, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.5.7", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 64, + "flow_size": 53000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.3", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 65, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 66, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.29", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 67, + "flow_size": 19000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.19", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 68, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.3.1", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 69, + "flow_size": 133000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.9", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 70, + "flow_size": 3333000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.1.11", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 71, + "flow_size": 6667000 + } + } + ,{ + "table": "MyIngress.lookup_flow_id", + "match": { + "hdr.ipv4.srcAddr": ["10.0.4.15", 32] + }, + "action_name": "MyIngress.assign_flow_id", + "action_params": { + "flow_id": 72, + "flow_size": 667000 + } + } + ] +} diff --git a/exercises/basic/throughput_data.csv b/exercises/basic/throughput_data.csv new file mode 100644 index 00000000..eb9f0df2 --- /dev/null +++ b/exercises/basic/throughput_data.csv @@ -0,0 +1,73 @@ +flow_id,source_id,dest_id,source_ip,dest_ip,throughput_mbps,flow_size_bytes,expected_flow_size,duration +39,14,616,10.0.1.7,10.0.6.31,2.4,133120.0,133000,0.4436 +32,410,92,10.0.4.19,10.0.9.3,3.0,53043.2,53000,0.1415 +8,47,78,10.0.4.13,10.0.7.15,3.78,53043.2,53000,0.1122 +67,315,82,10.0.3.29,10.0.8.3,4.21,19046.4,19000,0.0361 +5,21,615,10.0.2.1,10.0.6.29,6.3,6000.64,6000,0.0076 +30,51,65,10.0.5.1,10.0.6.9,7.12,1331691.52,1333000,1.4982 +48,53,73,10.0.5.5,10.0.7.5,24.9,6000.64,6000,0.0019 +56,22,514,10.0.2.3,10.0.5.27,9.01,6000.64,6000,0.0053 +52,29,87,10.0.2.17,10.0.8.13,10.9,6000.64,6000,0.0044 +42,313,612,10.0.3.25,10.0.6.23,3.45,53043.2,53000,0.1229 +50,58,71,10.0.5.15,10.0.7.1,4.46,3334471.68,3333000,5.9757 +11,18,913,10.0.1.15,10.0.9.25,7.52,13004.8,13000,0.0138 +53,55,62,10.0.5.9,10.0.6.3,8.86,1331691.52,1333000,1.2041 +36,27,513,10.0.2.13,10.0.5.25,5.44,1331691.52,1333000,1.9595 +54,26,88,10.0.2.11,10.0.8.15,4.81,133120.0,133000,0.221 +61,413,66,10.0.4.25,10.0.6.11,5.16,133120.0,133000,0.2063 +6,314,59,10.0.3.27,10.0.5.17,3.9,133120.0,133000,0.2732 +38,411,67,10.0.4.21,10.0.6.13,12.9,13004.8,13000,0.0081 +41,57,72,10.0.5.13,10.0.7.3,2.29,133120.0,133000,0.4637 +47,56,61,10.0.5.11,10.0.6.1,13.8,3334471.68,3333000,1.9282 +58,49,68,10.0.4.17,10.0.6.15,5.38,133120.0,133000,0.1977 +62,112,912,10.0.1.23,10.0.9.23,6.35,666624.0,667000,0.8398 +25,37,510,10.0.3.13,10.0.5.19,4.43,133120.0,133000,0.2404 +14,52,64,10.0.5.3,10.0.6.7,11.1,6000.64,6000,0.0043 +16,45,79,10.0.4.9,10.0.7.17,3.21,19046.4,19000,0.0474 +13,115,811,10.0.1.29,10.0.8.21,24.9,13004.8,13000,0.0042 +26,311,95,10.0.3.21,10.0.9.9,1.51,19046.4,19000,0.1006 +3,111,814,10.0.1.21,10.0.8.27,36.9,6000.64,6000,0.0013 +70,15,915,10.0.1.9,10.0.9.29,6.26,3334471.68,3333000,4.258 +20,215,85,10.0.2.29,10.0.8.9,2.3,19046.4,19000,0.0662 +27,114,812,10.0.1.27,10.0.8.23,2.15,133120.0,133000,0.4956 +44,42,94,10.0.4.3,10.0.9.7,18.1,6000.64,6000,0.0027 +46,210,614,10.0.2.19,10.0.6.27,10.7,1331691.52,1333000,0.999 +64,54,63,10.0.5.7,10.0.6.5,2.45,53043.2,53000,0.1734 +4,24,911,10.0.2.7,10.0.9.21,6.28,6000.64,6000,0.0076 +57,44,81,10.0.4.7,10.0.8.1,7.94,1331691.52,1333000,1.3423 +43,310,710,10.0.3.19,10.0.7.19,3.49,133120.0,133000,0.305 +34,17,914,10.0.1.13,10.0.9.27,3.66,133120.0,133000,0.2906 +65,12,516,10.0.1.3,10.0.5.31,2.91,133120.0,133000,0.3652 +63,19,716,10.0.1.17,10.0.7.31,6.23,3334471.68,3333000,4.2813 +2,116,810,10.0.1.31,10.0.8.19,3.91,666624.0,667000,1.3645 +1,416,74,10.0.4.31,10.0.7.7,5.83,666624.0,667000,0.9159 +49,216,712,10.0.2.31,10.0.7.23,25.5,20027801.6,20000000,6.2654 +31,36,96,10.0.3.11,10.0.9.11,3.82,666624.0,667000,1.3979 +18,214,713,10.0.2.27,10.0.7.25,4.33,133120.0,133000,0.2455 +22,34,98,10.0.3.7,10.0.9.15,5.25,666624.0,667000,1.0161 +68,110,815,10.0.1.19,10.0.8.29,16.4,6668943.36,6667000,3.2469 +23,213,910,10.0.2.25,10.0.9.19,15.8,13004.8,13000,0.0066 +17,43,69,10.0.4.5,10.0.6.17,6.85,666624.0,667000,0.7795 +40,38,84,10.0.3.15,10.0.8.7,23.5,6668943.36,6667000,2.266 +10,41,610,10.0.4.1,10.0.6.19,6.91,19046.4,19000,0.022 +24,23,89,10.0.2.5,10.0.8.17,6.45,6000.64,6000,0.0074 +28,412,91,10.0.4.23,10.0.9.1,2.69,19046.4,19000,0.0565 +60,46,93,10.0.4.11,10.0.9.5,16.1,3334471.68,3333000,1.6587 +66,11,916,10.0.1.1,10.0.9.31,12.2,6668943.36,6667000,4.3764 +69,31,99,10.0.3.1,10.0.9.17,3.32,133120.0,133000,0.3205 +7,13,816,10.0.1.5,10.0.8.31,10.9,6000.64,6000,0.0044 +9,414,76,10.0.4.27,10.0.7.11,6.19,3334471.68,3333000,4.306 +12,32,711,10.0.3.3,10.0.7.21,8.09,3334471.68,3333000,3.2944 +37,316,611,10.0.3.31,10.0.6.21,7.68,1331691.52,1333000,1.3881 +51,113,813,10.0.1.25,10.0.8.25,4.91,1331691.52,1333000,2.1732 +72,48,77,10.0.4.15,10.0.7.13,5.93,666624.0,667000,0.9002 +71,16,515,10.0.1.11,10.0.5.29,9.21,6668943.36,6667000,5.7891 +21,33,511,10.0.3.5,10.0.5.21,26.6,20027801.6,20000000,6.0223 +15,211,86,10.0.2.21,10.0.8.11,3.26,53043.2,53000,0.1301 +33,415,75,10.0.4.29,10.0.7.9,3.45,133120.0,133000,0.3087 +45,28,714,10.0.2.15,10.0.7.27,4.65,133120.0,133000,0.2288 +59,39,613,10.0.3.17,10.0.6.25,3.8,19046.4,19000,0.04 +55,312,83,10.0.3.23,10.0.8.5,5.58,53043.2,53000,0.076 +35,212,512,10.0.2.23,10.0.5.23,10.2,6000.64,6000,0.0047 +19,35,97,10.0.3.9,10.0.9.13,1.85,53043.2,53000,0.2297 +29,25,715,10.0.2.9,10.0.7.29,12.3,6668943.36,6667000,4.3429 diff --git a/exercises/basic/throughput_vs_time.png b/exercises/basic/throughput_vs_time.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd321be6fc8dddfc051327b57dde423e0db1f1b GIT binary patch literal 33431 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 literal 0 HcmV?d00001 diff --git a/exercises/basic/topology.json b/exercises/basic/topology.json new file mode 100644 index 00000000..67aba821 --- /dev/null +++ b/exercises/basic/topology.json @@ -0,0 +1,462 @@ +{ + "hosts":{ + "h11": {"ip": "10.0.1.1/31", "mac": "08:00:00:00:01:01", + "commands":["route add default gw 10.0.1.0 dev eth0", + "arp -i eth0 -s 10.0.1.0 08:00:00:00:01:FE"]}, + "h12": {"ip": "10.0.1.3/31", "mac": "08:00:00:00:01:02", + "commands":["route add default gw 10.0.1.2 dev eth0", + "arp -i eth0 -s 10.0.1.2 08:00:00:00:01:FE"]}, + "h13": {"ip": "10.0.1.5/31", "mac": "08:00:00:00:01:03", + "commands":["route add default gw 10.0.1.4 dev eth0", + "arp -i eth0 -s 10.0.1.4 08:00:00:00:01:FE"]}, + "h14": {"ip": "10.0.1.7/31", "mac": "08:00:00:00:01:04", + "commands":["route add default gw 10.0.1.6 dev eth0", + "arp -i eth0 -s 10.0.1.6 08:00:00:00:01:FE"]}, + "h15": {"ip": "10.0.1.9/31", "mac": "08:00:00:00:01:05", + "commands":["route add default gw 10.0.1.8 dev eth0", + "arp -i eth0 -s 10.0.1.8 08:00:00:00:01:FE"]}, + "h16": {"ip": "10.0.1.11/31", "mac": "08:00:00:00:01:06", + "commands":["route add default gw 10.0.1.10 dev eth0", + "arp -i eth0 -s 10.0.1.10 08:00:00:00:01:FE"]}, + "h17": {"ip": "10.0.1.13/31", "mac": "08:00:00:00:01:07", + "commands":["route add default gw 10.0.1.12 dev eth0", + "arp -i eth0 -s 10.0.1.12 08:00:00:00:01:FE"]}, + "h18": {"ip": "10.0.1.15/31", "mac": "08:00:00:00:01:08", + "commands":["route add default gw 10.0.1.14 dev eth0", + "arp -i eth0 -s 10.0.1.14 08:00:00:00:01:FE"]}, + "h19": {"ip": "10.0.1.17/31", "mac": "08:00:00:00:01:09", + "commands":["route add default gw 10.0.1.16 dev eth0", + "arp -i eth0 -s 10.0.1.16 08:00:00:00:01:FE"]}, + "h110": {"ip": "10.0.1.19/31", "mac": "08:00:00:00:01:10", + "commands":["route add default gw 10.0.1.18 dev eth0", + "arp -i eth0 -s 10.0.1.18 08:00:00:00:01:FE"]}, + "h111": {"ip": "10.0.1.21/31", "mac": "08:00:00:00:01:11", + "commands":["route add default gw 10.0.1.20 dev eth0", + "arp -i eth0 -s 10.0.1.20 08:00:00:00:01:FE"]}, + "h112": {"ip": "10.0.1.23/31", "mac": "08:00:00:00:01:12", + "commands":["route add default gw 10.0.1.22 dev eth0", + "arp -i eth0 -s 10.0.1.22 08:00:00:00:01:FE"]}, + "h113": {"ip": "10.0.1.25/31", "mac": "08:00:00:00:01:13", + "commands":["route add default gw 10.0.1.24 dev eth0", + "arp -i eth0 -s 10.0.1.24 08:00:00:00:01:FE"]}, + "h114": {"ip": "10.0.1.27/31", "mac": "08:00:00:00:01:14", + "commands":["route add default gw 10.0.1.26 dev eth0", + "arp -i eth0 -s 10.0.1.26 08:00:00:00:01:FE"]}, + "h115": {"ip": "10.0.1.29/31", "mac": "08:00:00:00:01:15", + "commands":["route add default gw 10.0.1.28 dev eth0", + "arp -i eth0 -s 10.0.1.28 08:00:00:00:01:FE"]}, + "h116": {"ip": "10.0.1.31/31", "mac": "08:00:00:00:01:16", + "commands":["route add default gw 10.0.1.30 dev eth0", + "arp -i eth0 -s 10.0.1.30 08:00:00:00:01:FE"]}, + "h21": {"ip": "10.0.2.1/31", "mac": "08:00:00:00:02:01", + "commands":["route add default gw 10.0.2.0 dev eth0", + "arp -i eth0 -s 10.0.2.0 08:00:00:00:02:FE"]}, + "h22": {"ip": "10.0.2.3/31", "mac": "08:00:00:00:02:02", + "commands":["route add default gw 10.0.2.2 dev eth0", + "arp -i eth0 -s 10.0.2.2 08:00:00:00:02:FE"]}, + "h23": {"ip": "10.0.2.5/31", "mac": "08:00:00:00:02:03", + "commands":["route add default gw 10.0.2.4 dev eth0", + "arp -i eth0 -s 10.0.2.4 08:00:00:00:02:FE"]}, + "h24": {"ip": "10.0.2.7/31", "mac": "08:00:00:00:02:04", + "commands":["route add default gw 10.0.2.6 dev eth0", + "arp -i eth0 -s 10.0.2.6 08:00:00:00:02:FE"]}, + "h25": {"ip": "10.0.2.9/31", "mac": "08:00:00:00:02:05", + "commands":["route add default gw 10.0.2.8 dev eth0", + "arp -i eth0 -s 10.0.2.8 08:00:00:00:02:FE"]}, + "h26": {"ip": "10.0.2.11/31", "mac": "08:00:00:00:02:06", + "commands":["route add default gw 10.0.2.10 dev eth0", + "arp -i eth0 -s 10.0.2.10 08:00:00:00:02:FE"]}, + "h27": {"ip": "10.0.2.13/31", "mac": "08:00:00:00:02:07", + "commands":["route add default gw 10.0.2.12 dev eth0", + "arp -i eth0 -s 10.0.2.12 08:00:00:00:02:FE"]}, + "h28": {"ip": "10.0.2.15/31", "mac": "08:00:00:00:02:08", + "commands":["route add default gw 10.0.2.14 dev eth0", + "arp -i eth0 -s 10.0.2.14 08:00:00:00:02:FE"]}, + "h29": {"ip": "10.0.2.17/31", "mac": "08:00:00:00:02:09", + "commands":["route add default gw 10.0.2.16 dev eth0", + "arp -i eth0 -s 10.0.2.16 08:00:00:00:02:FE"]}, + "h210": {"ip": "10.0.2.19/31", "mac": "08:00:00:00:02:10", + "commands":["route add default gw 10.0.2.18 dev eth0", + "arp -i eth0 -s 10.0.2.18 08:00:00:00:02:FE"]}, + "h211": {"ip": "10.0.2.21/31", "mac": "08:00:00:00:02:11", + "commands":["route add default gw 10.0.2.20 dev eth0", + "arp -i eth0 -s 10.0.2.20 08:00:00:00:02:FE"]}, + "h212": {"ip": "10.0.2.23/31", "mac": "08:00:00:00:02:12", + "commands":["route add default gw 10.0.2.22 dev eth0", + "arp -i eth0 -s 10.0.2.22 08:00:00:00:02:FE"]}, + "h213": {"ip": "10.0.2.25/31", "mac": "08:00:00:00:02:13", + "commands":["route add default gw 10.0.2.24 dev eth0", + "arp -i eth0 -s 10.0.2.24 08:00:00:00:02:FE"]}, + "h214": {"ip": "10.0.2.27/31", "mac": "08:00:00:00:02:14", + "commands":["route add default gw 10.0.2.26 dev eth0", + "arp -i eth0 -s 10.0.2.26 08:00:00:00:02:FE"]}, + "h215": {"ip": "10.0.2.29/31", "mac": "08:00:00:00:02:15", + "commands":["route add default gw 10.0.2.28 dev eth0", + "arp -i eth0 -s 10.0.2.28 08:00:00:00:02:FE"]}, + "h216": {"ip": "10.0.2.31/31", "mac": "08:00:00:00:02:16", + "commands":["route add default gw 10.0.2.30 dev eth0", + "arp -i eth0 -s 10.0.2.30 08:00:00:00:02:FE"]}, + "h31": {"ip": "10.0.3.1/31", "mac": "08:00:00:00:03:01", + "commands":["route add default gw 10.0.3.0 dev eth0", + "arp -i eth0 -s 10.0.3.0 08:00:00:00:03:FE"]}, + "h32": {"ip": "10.0.3.3/31", "mac": "08:00:00:00:03:02", + "commands":["route add default gw 10.0.3.2 dev eth0", + "arp -i eth0 -s 10.0.3.2 08:00:00:00:03:FE"]}, + "h33": {"ip": "10.0.3.5/31", "mac": "08:00:00:00:03:03", + "commands":["route add default gw 10.0.3.4 dev eth0", + "arp -i eth0 -s 10.0.3.4 08:00:00:00:03:FE"]}, + "h34": {"ip": "10.0.3.7/31", "mac": "08:00:00:00:03:04", + "commands":["route add default gw 10.0.3.6 dev eth0", + "arp -i eth0 -s 10.0.3.6 08:00:00:00:03:FE"]}, + "h35": {"ip": "10.0.3.9/31", "mac": "08:00:00:00:03:05", + "commands":["route add default gw 10.0.3.8 dev eth0", + "arp -i eth0 -s 10.0.3.8 08:00:00:00:03:FE"]}, + "h36": {"ip": "10.0.3.11/31", "mac": "08:00:00:00:03:06", + "commands":["route add default gw 10.0.3.10 dev eth0", + "arp -i eth0 -s 10.0.3.10 08:00:00:00:03:FE"]}, + "h37": {"ip": "10.0.3.13/31", "mac": "08:00:00:00:03:07", + "commands":["route add default gw 10.0.3.12 dev eth0", + "arp -i eth0 -s 10.0.3.12 08:00:00:00:03:FE"]}, + "h38": {"ip": "10.0.3.15/31", "mac": "08:00:00:00:03:08", + "commands":["route add default gw 10.0.3.14 dev eth0", + "arp -i eth0 -s 10.0.3.14 08:00:00:00:03:FE"]}, + "h39": {"ip": "10.0.3.17/31", "mac": "08:00:00:00:03:09", + "commands":["route add default gw 10.0.3.16 dev eth0", + "arp -i eth0 -s 10.0.3.16 08:00:00:00:03:FE"]}, + "h310": {"ip": "10.0.3.19/31", "mac": "08:00:00:00:03:10", + "commands":["route add default gw 10.0.3.18 dev eth0", + "arp -i eth0 -s 10.0.3.18 08:00:00:00:03:FE"]}, + "h311": {"ip": "10.0.3.21/31", "mac": "08:00:00:00:03:11", + "commands":["route add default gw 10.0.3.20 dev eth0", + "arp -i eth0 -s 10.0.3.20 08:00:00:00:03:FE"]}, + "h312": {"ip": "10.0.3.23/31", "mac": "08:00:00:00:03:12", + "commands":["route add default gw 10.0.3.22 dev eth0", + "arp -i eth0 -s 10.0.3.22 08:00:00:00:03:FE"]}, + "h313": {"ip": "10.0.3.25/31", "mac": "08:00:00:00:03:13", + "commands":["route add default gw 10.0.3.24 dev eth0", + "arp -i eth0 -s 10.0.3.24 08:00:00:00:03:FE"]}, + "h314": {"ip": "10.0.3.27/31", "mac": "08:00:00:00:03:14", + "commands":["route add default gw 10.0.3.26 dev eth0", + "arp -i eth0 -s 10.0.3.26 08:00:00:00:03:FE"]}, + "h315": {"ip": "10.0.3.29/31", "mac": "08:00:00:00:03:15", + "commands":["route add default gw 10.0.3.28 dev eth0", + "arp -i eth0 -s 10.0.3.28 08:00:00:00:03:FE"]}, + "h316": {"ip": "10.0.3.31/31", "mac": "08:00:00:00:03:16", + "commands":["route add default gw 10.0.3.30 dev eth0", + "arp -i eth0 -s 10.0.3.30 08:00:00:00:03:FE"]}, + "h41": {"ip": "10.0.4.1/31", "mac": "08:00:00:00:04:01", + "commands":["route add default gw 10.0.4.0 dev eth0", + "arp -i eth0 -s 10.0.4.0 08:00:00:00:04:FE"]}, + "h42": {"ip": "10.0.4.3/31", "mac": "08:00:00:00:04:02", + "commands":["route add default gw 10.0.4.2 dev eth0", + "arp -i eth0 -s 10.0.4.2 08:00:00:00:04:FE"]}, + "h43": {"ip": "10.0.4.5/31", "mac": "08:00:00:00:04:03", + "commands":["route add default gw 10.0.4.4 dev eth0", + "arp -i eth0 -s 10.0.4.4 08:00:00:00:04:FE"]}, + "h44": {"ip": "10.0.4.7/31", "mac": "08:00:00:00:04:04", + "commands":["route add default gw 10.0.4.6 dev eth0", + "arp -i eth0 -s 10.0.4.6 08:00:00:00:04:FE"]}, + "h45": {"ip": "10.0.4.9/31", "mac": "08:00:00:00:04:05", + "commands":["route add default gw 10.0.4.8 dev eth0", + "arp -i eth0 -s 10.0.4.8 08:00:00:00:04:FE"]}, + "h46": {"ip": "10.0.4.11/31", "mac": "08:00:00:00:04:06", + "commands":["route add default gw 10.0.4.10 dev eth0", + "arp -i eth0 -s 10.0.4.10 08:00:00:00:04:FE"]}, + "h47": {"ip": "10.0.4.13/31", "mac": "08:00:00:00:04:07", + "commands":["route add default gw 10.0.4.12 dev eth0", + "arp -i eth0 -s 10.0.4.12 08:00:00:00:04:FE"]}, + "h48": {"ip": "10.0.4.15/31", "mac": "08:00:00:00:04:08", + "commands":["route add default gw 10.0.4.14 dev eth0", + "arp -i eth0 -s 10.0.4.14 08:00:00:00:04:FE"]}, + "h49": {"ip": "10.0.4.17/31", "mac": "08:00:00:00:04:09", + "commands":["route add default gw 10.0.4.16 dev eth0", + "arp -i eth0 -s 10.0.4.16 08:00:00:00:04:FE"]}, + "h410": {"ip": "10.0.4.19/31", "mac": "08:00:00:00:04:10", + "commands":["route add default gw 10.0.4.18 dev eth0", + "arp -i eth0 -s 10.0.4.18 08:00:00:00:04:FE"]}, + "h411": {"ip": "10.0.4.21/31", "mac": "08:00:00:00:04:11", + "commands":["route add default gw 10.0.4.20 dev eth0", + "arp -i eth0 -s 10.0.4.20 08:00:00:00:04:FE"]}, + "h412": {"ip": "10.0.4.23/31", "mac": "08:00:00:00:04:12", + "commands":["route add default gw 10.0.4.22 dev eth0", + "arp -i eth0 -s 10.0.4.22 08:00:00:00:04:FE"]}, + "h413": {"ip": "10.0.4.25/31", "mac": "08:00:00:00:04:13", + "commands":["route add default gw 10.0.4.24 dev eth0", + "arp -i eth0 -s 10.0.4.24 08:00:00:00:04:FE"]}, + "h414": {"ip": "10.0.4.27/31", "mac": "08:00:00:00:04:14", + "commands":["route add default gw 10.0.4.26 dev eth0", + "arp -i eth0 -s 10.0.4.26 08:00:00:00:04:FE"]}, + "h415": {"ip": "10.0.4.29/31", "mac": "08:00:00:00:04:15", + "commands":["route add default gw 10.0.4.28 dev eth0", + "arp -i eth0 -s 10.0.4.28 08:00:00:00:04:FE"]}, + "h416": {"ip": "10.0.4.31/31", "mac": "08:00:00:00:04:16", + "commands":["route add default gw 10.0.4.30 dev eth0", + "arp -i eth0 -s 10.0.4.30 08:00:00:00:04:FE"]}, + "h51": {"ip": "10.0.5.1/31", "mac": "08:00:00:00:05:01", + "commands":["route add default gw 10.0.5.0 dev eth0", + "arp -i eth0 -s 10.0.5.0 08:00:00:00:05:FE"]}, + "h52": {"ip": "10.0.5.3/31", "mac": "08:00:00:00:05:02", + "commands":["route add default gw 10.0.5.2 dev eth0", + "arp -i eth0 -s 10.0.5.2 08:00:00:00:05:FE"]}, + "h53": {"ip": "10.0.5.5/31", "mac": "08:00:00:00:05:03", + "commands":["route add default gw 10.0.5.4 dev eth0", + "arp -i eth0 -s 10.0.5.4 08:00:00:00:05:FE"]}, + "h54": {"ip": "10.0.5.7/31", "mac": "08:00:00:00:05:04", + "commands":["route add default gw 10.0.5.6 dev eth0", + "arp -i eth0 -s 10.0.5.6 08:00:00:00:05:FE"]}, + "h55": {"ip": "10.0.5.9/31", "mac": "08:00:00:00:05:05", + "commands":["route add default gw 10.0.5.8 dev eth0", + "arp -i eth0 -s 10.0.5.8 08:00:00:00:05:FE"]}, + "h56": {"ip": "10.0.5.11/31", "mac": "08:00:00:00:05:06", + "commands":["route add default gw 10.0.5.10 dev eth0", + "arp -i eth0 -s 10.0.5.10 08:00:00:00:05:FE"]}, + "h57": {"ip": "10.0.5.13/31", "mac": "08:00:00:00:05:07", + "commands":["route add default gw 10.0.5.12 dev eth0", + "arp -i eth0 -s 10.0.5.12 08:00:00:00:05:FE"]}, + "h58": {"ip": "10.0.5.15/31", "mac": "08:00:00:00:05:08", + "commands":["route add default gw 10.0.5.14 dev eth0", + "arp -i eth0 -s 10.0.5.14 08:00:00:00:05:FE"]}, + "h59": {"ip": "10.0.5.17/31", "mac": "08:00:00:00:05:09", + "commands":["route add default gw 10.0.5.16 dev eth0", + "arp -i eth0 -s 10.0.5.16 08:00:00:00:05:FE"]}, + "h510": {"ip": "10.0.5.19/31", "mac": "08:00:00:00:05:10", + "commands":["route add default gw 10.0.5.18 dev eth0", + "arp -i eth0 -s 10.0.5.18 08:00:00:00:05:FE"]}, + "h511": {"ip": "10.0.5.21/31", "mac": "08:00:00:00:05:11", + "commands":["route add default gw 10.0.5.20 dev eth0", + "arp -i eth0 -s 10.0.5.20 08:00:00:00:05:FE"]}, + "h512": {"ip": "10.0.5.23/31", "mac": "08:00:00:00:05:12", + "commands":["route add default gw 10.0.5.22 dev eth0", + "arp -i eth0 -s 10.0.5.22 08:00:00:00:05:FE"]}, + "h513": {"ip": "10.0.5.25/31", "mac": "08:00:00:00:05:13", + "commands":["route add default gw 10.0.5.24 dev eth0", + "arp -i eth0 -s 10.0.5.24 08:00:00:00:05:FE"]}, + "h514": {"ip": "10.0.5.27/31", "mac": "08:00:00:00:05:14", + "commands":["route add default gw 10.0.5.26 dev eth0", + "arp -i eth0 -s 10.0.5.26 08:00:00:00:05:FE"]}, + "h515": {"ip": "10.0.5.29/31", "mac": "08:00:00:00:05:15", + "commands":["route add default gw 10.0.5.28 dev eth0", + "arp -i eth0 -s 10.0.5.28 08:00:00:00:05:FE"]}, + "h516": {"ip": "10.0.5.31/31", "mac": "08:00:00:00:05:16", + "commands":["route add default gw 10.0.5.30 dev eth0", + "arp -i eth0 -s 10.0.5.30 08:00:00:00:05:FE"]}, + "h61": {"ip": "10.0.6.1/31", "mac": "08:00:00:00:06:01", + "commands":["route add default gw 10.0.6.0 dev eth0", + "arp -i eth0 -s 10.0.6.0 08:00:00:00:06:FE"]}, + "h62": {"ip": "10.0.6.3/31", "mac": "08:00:00:00:06:02", + "commands":["route add default gw 10.0.6.2 dev eth0", + "arp -i eth0 -s 10.0.6.2 08:00:00:00:06:FE"]}, + "h63": {"ip": "10.0.6.5/31", "mac": "08:00:00:00:06:03", + "commands":["route add default gw 10.0.6.4 dev eth0", + "arp -i eth0 -s 10.0.6.4 08:00:00:00:06:FE"]}, + "h64": {"ip": "10.0.6.7/31", "mac": "08:00:00:00:06:04", + "commands":["route add default gw 10.0.6.6 dev eth0", + "arp -i eth0 -s 10.0.6.6 08:00:00:00:06:FE"]}, + "h65": {"ip": "10.0.6.9/31", "mac": "08:00:00:00:06:05", + "commands":["route add default gw 10.0.6.8 dev eth0", + "arp -i eth0 -s 10.0.6.8 08:00:00:00:06:FE"]}, + "h66": {"ip": "10.0.6.11/31", "mac": "08:00:00:00:06:06", + "commands":["route add default gw 10.0.6.10 dev eth0", + "arp -i eth0 -s 10.0.6.10 08:00:00:00:06:FE"]}, + "h67": {"ip": "10.0.6.13/31", "mac": "08:00:00:00:06:07", + "commands":["route add default gw 10.0.6.12 dev eth0", + "arp -i eth0 -s 10.0.6.12 08:00:00:00:06:FE"]}, + "h68": {"ip": "10.0.6.15/31", "mac": "08:00:00:00:06:08", + "commands":["route add default gw 10.0.6.14 dev eth0", + "arp -i eth0 -s 10.0.6.14 08:00:00:00:06:FE"]}, + "h69": {"ip": "10.0.6.17/31", "mac": "08:00:00:00:06:09", + "commands":["route add default gw 10.0.6.16 dev eth0", + "arp -i eth0 -s 10.0.6.16 08:00:00:00:06:FE"]}, + "h610": {"ip": "10.0.6.19/31", "mac": "08:00:00:00:06:10", + "commands":["route add default gw 10.0.6.18 dev eth0", + "arp -i eth0 -s 10.0.6.18 08:00:00:00:06:FE"]}, + "h611": {"ip": "10.0.6.21/31", "mac": "08:00:00:00:06:11", + "commands":["route add default gw 10.0.6.20 dev eth0", + "arp -i eth0 -s 10.0.6.20 08:00:00:00:06:FE"]}, + "h612": {"ip": "10.0.6.23/31", "mac": "08:00:00:00:06:12", + "commands":["route add default gw 10.0.6.22 dev eth0", + "arp -i eth0 -s 10.0.6.22 08:00:00:00:06:FE"]}, + "h613": {"ip": "10.0.6.25/31", "mac": "08:00:00:00:06:13", + "commands":["route add default gw 10.0.6.24 dev eth0", + "arp -i eth0 -s 10.0.6.24 08:00:00:00:06:FE"]}, + "h614": {"ip": "10.0.6.27/31", "mac": "08:00:00:00:06:14", + "commands":["route add default gw 10.0.6.26 dev eth0", + "arp -i eth0 -s 10.0.6.26 08:00:00:00:06:FE"]}, + "h615": {"ip": "10.0.6.29/31", "mac": "08:00:00:00:06:15", + "commands":["route add default gw 10.0.6.28 dev eth0", + "arp -i eth0 -s 10.0.6.28 08:00:00:00:06:FE"]}, + "h616": {"ip": "10.0.6.31/31", "mac": "08:00:00:00:06:16", + "commands":["route add default gw 10.0.6.30 dev eth0", + "arp -i eth0 -s 10.0.6.30 08:00:00:00:06:FE"]}, + "h71": {"ip": "10.0.7.1/31", "mac": "08:00:00:00:07:01", + "commands":["route add default gw 10.0.7.0 dev eth0", + "arp -i eth0 -s 10.0.7.0 08:00:00:00:07:FE"]}, + "h72": {"ip": "10.0.7.3/31", "mac": "08:00:00:00:07:02", + "commands":["route add default gw 10.0.7.2 dev eth0", + "arp -i eth0 -s 10.0.7.2 08:00:00:00:07:FE"]}, + "h73": {"ip": "10.0.7.5/31", "mac": "08:00:00:00:07:03", + "commands":["route add default gw 10.0.7.4 dev eth0", + "arp -i eth0 -s 10.0.7.4 08:00:00:00:07:FE"]}, + "h74": {"ip": "10.0.7.7/31", "mac": "08:00:00:00:07:04", + "commands":["route add default gw 10.0.7.6 dev eth0", + "arp -i eth0 -s 10.0.7.6 08:00:00:00:07:FE"]}, + "h75": {"ip": "10.0.7.9/31", "mac": "08:00:00:00:07:05", + "commands":["route add default gw 10.0.7.8 dev eth0", + "arp -i eth0 -s 10.0.7.8 08:00:00:00:07:FE"]}, + "h76": {"ip": "10.0.7.11/31", "mac": "08:00:00:00:07:06", + "commands":["route add default gw 10.0.7.10 dev eth0", + "arp -i eth0 -s 10.0.7.10 08:00:00:00:07:FE"]}, + "h77": {"ip": "10.0.7.13/31", "mac": "08:00:00:00:07:07", + "commands":["route add default gw 10.0.7.12 dev eth0", + "arp -i eth0 -s 10.0.7.12 08:00:00:00:07:FE"]}, + "h78": {"ip": "10.0.7.15/31", "mac": "08:00:00:00:07:08", + "commands":["route add default gw 10.0.7.14 dev eth0", + "arp -i eth0 -s 10.0.7.14 08:00:00:00:07:FE"]}, + "h79": {"ip": "10.0.7.17/31", "mac": "08:00:00:00:07:09", + "commands":["route add default gw 10.0.7.16 dev eth0", + "arp -i eth0 -s 10.0.7.16 08:00:00:00:07:FE"]}, + "h710": {"ip": "10.0.7.19/31", "mac": "08:00:00:00:07:10", + "commands":["route add default gw 10.0.7.18 dev eth0", + "arp -i eth0 -s 10.0.7.18 08:00:00:00:07:FE"]}, + "h711": {"ip": "10.0.7.21/31", "mac": "08:00:00:00:07:11", + "commands":["route add default gw 10.0.7.20 dev eth0", + "arp -i eth0 -s 10.0.7.20 08:00:00:00:07:FE"]}, + "h712": {"ip": "10.0.7.23/31", "mac": "08:00:00:00:07:12", + "commands":["route add default gw 10.0.7.22 dev eth0", + "arp -i eth0 -s 10.0.7.22 08:00:00:00:07:FE"]}, + "h713": {"ip": "10.0.7.25/31", "mac": "08:00:00:00:07:13", + "commands":["route add default gw 10.0.7.24 dev eth0", + "arp -i eth0 -s 10.0.7.24 08:00:00:00:07:FE"]}, + "h714": {"ip": "10.0.7.27/31", "mac": "08:00:00:00:07:14", + "commands":["route add default gw 10.0.7.26 dev eth0", + "arp -i eth0 -s 10.0.7.26 08:00:00:00:07:FE"]}, + "h715": {"ip": "10.0.7.29/31", "mac": "08:00:00:00:07:15", + "commands":["route add default gw 10.0.7.28 dev eth0", + "arp -i eth0 -s 10.0.7.28 08:00:00:00:07:FE"]}, + "h716": {"ip": "10.0.7.31/31", "mac": "08:00:00:00:07:16", + "commands":["route add default gw 10.0.7.30 dev eth0", + "arp -i eth0 -s 10.0.7.30 08:00:00:00:07:FE"]}, + "h81": {"ip": "10.0.8.1/31", "mac": "08:00:00:00:08:01", + "commands":["route add default gw 10.0.8.0 dev eth0", + "arp -i eth0 -s 10.0.8.0 08:00:00:00:08:FE"]}, + "h82": {"ip": "10.0.8.3/31", "mac": "08:00:00:00:08:02", + "commands":["route add default gw 10.0.8.2 dev eth0", + "arp -i eth0 -s 10.0.8.2 08:00:00:00:08:FE"]}, + "h83": {"ip": "10.0.8.5/31", "mac": "08:00:00:00:08:03", + "commands":["route add default gw 10.0.8.4 dev eth0", + "arp -i eth0 -s 10.0.8.4 08:00:00:00:08:FE"]}, + "h84": {"ip": "10.0.8.7/31", "mac": "08:00:00:00:08:04", + "commands":["route add default gw 10.0.8.6 dev eth0", + "arp -i eth0 -s 10.0.8.6 08:00:00:00:08:FE"]}, + "h85": {"ip": "10.0.8.9/31", "mac": "08:00:00:00:08:05", + "commands":["route add default gw 10.0.8.8 dev eth0", + "arp -i eth0 -s 10.0.8.8 08:00:00:00:08:FE"]}, + "h86": {"ip": "10.0.8.11/31", "mac": "08:00:00:00:08:06", + "commands":["route add default gw 10.0.8.10 dev eth0", + "arp -i eth0 -s 10.0.8.10 08:00:00:00:08:FE"]}, + "h87": {"ip": "10.0.8.13/31", "mac": "08:00:00:00:08:07", + "commands":["route add default gw 10.0.8.12 dev eth0", + "arp -i eth0 -s 10.0.8.12 08:00:00:00:08:FE"]}, + "h88": {"ip": "10.0.8.15/31", "mac": "08:00:00:00:08:08", + "commands":["route add default gw 10.0.8.14 dev eth0", + "arp -i eth0 -s 10.0.8.14 08:00:00:00:08:FE"]}, + "h89": {"ip": "10.0.8.17/31", "mac": "08:00:00:00:08:09", + "commands":["route add default gw 10.0.8.16 dev eth0", + "arp -i eth0 -s 10.0.8.16 08:00:00:00:08:FE"]}, + "h810": {"ip": "10.0.8.19/31", "mac": "08:00:00:00:08:10", + "commands":["route add default gw 10.0.8.18 dev eth0", + "arp -i eth0 -s 10.0.8.18 08:00:00:00:08:FE"]}, + "h811": {"ip": "10.0.8.21/31", "mac": "08:00:00:00:08:11", + "commands":["route add default gw 10.0.8.20 dev eth0", + "arp -i eth0 -s 10.0.8.20 08:00:00:00:08:FE"]}, + "h812": {"ip": "10.0.8.23/31", "mac": "08:00:00:00:08:12", + "commands":["route add default gw 10.0.8.22 dev eth0", + "arp -i eth0 -s 10.0.8.22 08:00:00:00:08:FE"]}, + "h813": {"ip": "10.0.8.25/31", "mac": "08:00:00:00:08:13", + "commands":["route add default gw 10.0.8.24 dev eth0", + "arp -i eth0 -s 10.0.8.24 08:00:00:00:08:FE"]}, + "h814": {"ip": "10.0.8.27/31", "mac": "08:00:00:00:08:14", + "commands":["route add default gw 10.0.8.26 dev eth0", + "arp -i eth0 -s 10.0.8.26 08:00:00:00:08:FE"]}, + "h815": {"ip": "10.0.8.29/31", "mac": "08:00:00:00:08:15", + "commands":["route add default gw 10.0.8.28 dev eth0", + "arp -i eth0 -s 10.0.8.28 08:00:00:00:08:FE"]}, + "h816": {"ip": "10.0.8.31/31", "mac": "08:00:00:00:08:16", + "commands":["route add default gw 10.0.8.30 dev eth0", + "arp -i eth0 -s 10.0.8.30 08:00:00:00:08:FE"]}, + "h91": {"ip": "10.0.9.1/31", "mac": "08:00:00:00:09:01", + "commands":["route add default gw 10.0.9.0 dev eth0", + "arp -i eth0 -s 10.0.9.0 08:00:00:00:09:FE"]}, + "h92": {"ip": "10.0.9.3/31", "mac": "08:00:00:00:09:02", + "commands":["route add default gw 10.0.9.2 dev eth0", + "arp -i eth0 -s 10.0.9.2 08:00:00:00:09:FE"]}, + "h93": {"ip": "10.0.9.5/31", "mac": "08:00:00:00:09:03", + "commands":["route add default gw 10.0.9.4 dev eth0", + "arp -i eth0 -s 10.0.9.4 08:00:00:00:09:FE"]}, + "h94": {"ip": "10.0.9.7/31", "mac": "08:00:00:00:09:04", + "commands":["route add default gw 10.0.9.6 dev eth0", + "arp -i eth0 -s 10.0.9.6 08:00:00:00:09:FE"]}, + "h95": {"ip": "10.0.9.9/31", "mac": "08:00:00:00:09:05", + "commands":["route add default gw 10.0.9.8 dev eth0", + "arp -i eth0 -s 10.0.9.8 08:00:00:00:09:FE"]}, + "h96": {"ip": "10.0.9.11/31", "mac": "08:00:00:00:09:06", + "commands":["route add default gw 10.0.9.10 dev eth0", + "arp -i eth0 -s 10.0.9.10 08:00:00:00:09:FE"]}, + "h97": {"ip": "10.0.9.13/31", "mac": "08:00:00:00:09:07", + "commands":["route add default gw 10.0.9.12 dev eth0", + "arp -i eth0 -s 10.0.9.12 08:00:00:00:09:FE"]}, + "h98": {"ip": "10.0.9.15/31", "mac": "08:00:00:00:09:08", + "commands":["route add default gw 10.0.9.14 dev eth0", + "arp -i eth0 -s 10.0.9.14 08:00:00:00:09:FE"]}, + "h99": {"ip": "10.0.9.17/31", "mac": "08:00:00:00:09:09", + "commands":["route add default gw 10.0.9.16 dev eth0", + "arp -i eth0 -s 10.0.9.16 08:00:00:00:09:FE"]}, + "h910": {"ip": "10.0.9.19/31", "mac": "08:00:00:00:09:10", + "commands":["route add default gw 10.0.9.18 dev eth0", + "arp -i eth0 -s 10.0.9.18 08:00:00:00:09:FE"]}, + "h911": {"ip": "10.0.9.21/31", "mac": "08:00:00:00:09:11", + "commands":["route add default gw 10.0.9.20 dev eth0", + "arp -i eth0 -s 10.0.9.20 08:00:00:00:09:FE"]}, + "h912": {"ip": "10.0.9.23/31", "mac": "08:00:00:00:09:12", + "commands":["route add default gw 10.0.9.22 dev eth0", + "arp -i eth0 -s 10.0.9.22 08:00:00:00:09:FE"]}, + "h913": {"ip": "10.0.9.25/31", "mac": "08:00:00:00:09:13", + "commands":["route add default gw 10.0.9.24 dev eth0", + "arp -i eth0 -s 10.0.9.24 08:00:00:00:09:FE"]}, + "h914": {"ip": "10.0.9.27/31", "mac": "08:00:00:00:09:14", + "commands":["route add default gw 10.0.9.26 dev eth0", + "arp -i eth0 -s 10.0.9.26 08:00:00:00:09:FE"]}, + "h915": {"ip": "10.0.9.29/31", "mac": "08:00:00:00:09:15", + "commands":["route add default gw 10.0.9.28 dev eth0", + "arp -i eth0 -s 10.0.9.28 08:00:00:00:09:FE"]}, + "h916": {"ip": "10.0.9.31/31", "mac": "08:00:00:00:09:16", + "commands":["route add default gw 10.0.9.30 dev eth0", + "arp -i eth0 -s 10.0.9.30 08:00:00:00:09:FE"]} + }, + "switches":{ + "s1": { "runtime_json" : "s1-runtime.json" }, + "s2": { "runtime_json" : "s2-runtime.json" }, + "s3": { "runtime_json" : "s3-runtime.json" }, + "s4": { "runtime_json" : "s4-runtime.json" }, + "s5": { "runtime_json" : "s5-runtime.json" }, + "s6": { "runtime_json" : "s6-runtime.json" }, + "s7": { "runtime_json" : "s7-runtime.json" }, + "s8": { "runtime_json" : "s8-runtime.json" }, + "s9": { "runtime_json" : "s9-runtime.json" }, + "ss1": { "runtime_json" : "ss1-runtime.json" }, + "ss2": { "runtime_json" : "ss2-runtime.json" }, + "ss3": { "runtime_json" : "ss3-runtime.json" }, + "ss4": { "runtime_json" : "ss4-runtime.json" } + }, + "links": [ + ["h11", "s1-p1", "0ms", 100], ["h12", "s1-p2", "0ms", 100], ["h13", "s1-p3", "0ms", 100], ["h14", "s1-p4", "0ms", 100], ["h15", "s1-p5", "0ms", 100], ["h16", "s1-p6", "0ms", 100], ["h17", "s1-p7", "0ms", 100], ["h18", "s1-p8", "0ms", 100], ["h19", "s1-p9", "0ms", 100], ["h110", "s1-p10", "0ms", 100], ["h111", "s1-p11", "0ms", 100], ["h112", "s1-p12", "0ms", 100], ["h113", "s1-p13", "0ms", 100], ["h114", "s1-p14", "0ms", 100], ["h115", "s1-p15", "0ms", 100], ["h116", "s1-p16", "0ms", 100], ["ss1-p1", "s1-p17", "0ms", 100], ["ss2-p1", "s1-p18", "0ms", 100], ["ss3-p1", "s1-p19", "0ms", 100], ["ss4-p1", "s1-p20", "0ms", 100], + ["h21", "s2-p1", "0ms", 100], ["h22", "s2-p2", "0ms", 100], ["h23", "s2-p3", "0ms", 100], ["h24", "s2-p4", "0ms", 100], ["h25", "s2-p5", "0ms", 100], ["h26", "s2-p6", "0ms", 100], ["h27", "s2-p7", "0ms", 100], ["h28", "s2-p8", "0ms", 100], ["h29", "s2-p9", "0ms", 100], ["h210", "s2-p10", "0ms", 100], ["h211", "s2-p11", "0ms", 100], ["h212", "s2-p12", "0ms", 100], ["h213", "s2-p13", "0ms", 100], ["h214", "s2-p14", "0ms", 100], ["h215", "s2-p15", "0ms", 100], ["h216", "s2-p16", "0ms", 100], ["ss1-p2", "s2-p17", "0ms", 100], ["ss2-p2", "s2-p18", "0ms", 100], ["ss3-p2", "s2-p19", "0ms", 100], ["ss4-p2", "s2-p20", "0ms", 100], + ["h31", "s3-p1", "0ms", 100], ["h32", "s3-p2", "0ms", 100], ["h33", "s3-p3", "0ms", 100], ["h34", "s3-p4", "0ms", 100], ["h35", "s3-p5", "0ms", 100], ["h36", "s3-p6", "0ms", 100], ["h37", "s3-p7", "0ms", 100], ["h38", "s3-p8", "0ms", 100], ["h39", "s3-p9", "0ms", 100], ["h310", "s3-p10", "0ms", 100], ["h311", "s3-p11", "0ms", 100], ["h312", "s3-p12", "0ms", 100], ["h313", "s3-p13", "0ms", 100], ["h314", "s3-p14", "0ms", 100], ["h315", "s3-p15", "0ms", 100], ["h316", "s3-p16", "0ms", 100], ["ss1-p3", "s3-p17", "0ms", 100], ["ss2-p3", "s3-p18", "0ms", 100], ["ss3-p3", "s3-p19", "0ms", 100], ["ss4-p3", "s3-p20", "0ms", 100], + ["h41", "s4-p1", "0ms", 100], ["h42", "s4-p2", "0ms", 100], ["h43", "s4-p3", "0ms", 100], ["h44", "s4-p4", "0ms", 100], ["h45", "s4-p5", "0ms", 100], ["h46", "s4-p6", "0ms", 100], ["h47", "s4-p7", "0ms", 100], ["h48", "s4-p8", "0ms", 100], ["h49", "s4-p9", "0ms", 100], ["h410", "s4-p10", "0ms", 100], ["h411", "s4-p11", "0ms", 100], ["h412", "s4-p12", "0ms", 100], ["h413", "s4-p13", "0ms", 100], ["h414", "s4-p14", "0ms", 100], ["h415", "s4-p15", "0ms", 100], ["h416", "s4-p16", "0ms", 100], ["ss1-p4", "s4-p17", "0ms", 100], ["ss2-p4", "s4-p18", "0ms", 100], ["ss3-p4", "s4-p19", "0ms", 100], ["ss4-p4", "s4-p20", "0ms", 100], + ["h51", "s5-p1", "0ms", 100], ["h52", "s5-p2", "0ms", 100], ["h53", "s5-p3", "0ms", 100], ["h54", "s5-p4", "0ms", 100], ["h55", "s5-p5", "0ms", 100], ["h56", "s5-p6", "0ms", 100], ["h57", "s5-p7", "0ms", 100], ["h58", "s5-p8", "0ms", 100], ["h59", "s5-p9", "0ms", 100], ["h510", "s5-p10", "0ms", 100], ["h511", "s5-p11", "0ms", 100], ["h512", "s5-p12", "0ms", 100], ["h513", "s5-p13", "0ms", 100], ["h514", "s5-p14", "0ms", 100], ["h515", "s5-p15", "0ms", 100], ["h516", "s5-p16", "0ms", 100], ["ss1-p5", "s5-p17", "0ms", 100], ["ss2-p5", "s5-p18", "0ms", 100], ["ss3-p5", "s5-p19", "0ms", 100], ["ss4-p5", "s5-p20", "0ms", 100], + ["h61", "s6-p1", "0ms", 100], ["h62", "s6-p2", "0ms", 100], ["h63", "s6-p3", "0ms", 100], ["h64", "s6-p4", "0ms", 100], ["h65", "s6-p5", "0ms", 100], ["h66", "s6-p6", "0ms", 100], ["h67", "s6-p7", "0ms", 100], ["h68", "s6-p8", "0ms", 100], ["h69", "s6-p9", "0ms", 100], ["h610", "s6-p10", "0ms", 100], ["h611", "s6-p11", "0ms", 100], ["h612", "s6-p12", "0ms", 100], ["h613", "s6-p13", "0ms", 100], ["h614", "s6-p14", "0ms", 100], ["h615", "s6-p15", "0ms", 100], ["h616", "s6-p16", "0ms", 100], ["ss1-p6", "s6-p17", "0ms", 100], ["ss2-p6", "s6-p18", "0ms", 100], ["ss3-p6", "s6-p19", "0ms", 100], ["ss4-p6", "s6-p20", "0ms", 100], + ["h71", "s7-p1", "0ms", 100], ["h72", "s7-p2", "0ms", 100], ["h73", "s7-p3", "0ms", 100], ["h74", "s7-p4", "0ms", 100], ["h75", "s7-p5", "0ms", 100], ["h76", "s7-p6", "0ms", 100], ["h77", "s7-p7", "0ms", 100], ["h78", "s7-p8", "0ms", 100], ["h79", "s7-p9", "0ms", 100], ["h710", "s7-p10", "0ms", 100], ["h711", "s7-p11", "0ms", 100], ["h712", "s7-p12", "0ms", 100], ["h713", "s7-p13", "0ms", 100], ["h714", "s7-p14", "0ms", 100], ["h715", "s7-p15", "0ms", 100], ["h716", "s7-p16", "0ms", 100], ["ss1-p7", "s7-p17", "0ms", 100], ["ss2-p7", "s7-p18", "0ms", 100], ["ss3-p7", "s7-p19", "0ms", 100], ["ss4-p7", "s7-p20", "0ms", 100], + ["h81", "s8-p1", "0ms", 100], ["h82", "s8-p2", "0ms", 100], ["h83", "s8-p3", "0ms", 100], ["h84", "s8-p4", "0ms", 100], ["h85", "s8-p5", "0ms", 100], ["h86", "s8-p6", "0ms", 100], ["h87", "s8-p7", "0ms", 100], ["h88", "s8-p8", "0ms", 100], ["h89", "s8-p9", "0ms", 100], ["h810", "s8-p10", "0ms", 100], ["h811", "s8-p11", "0ms", 100], ["h812", "s8-p12", "0ms", 100], ["h813", "s8-p13", "0ms", 100], ["h814", "s8-p14", "0ms", 100], ["h815", "s8-p15", "0ms", 100], ["h816", "s8-p16", "0ms", 100], ["ss1-p8", "s8-p17", "0ms", 100], ["ss2-p8", "s8-p18", "0ms", 100], ["ss3-p8", "s8-p19", "0ms", 100], ["ss4-p8", "s8-p20", "0ms", 100], + ["h91", "s9-p1", "0ms", 100], ["h92", "s9-p2", "0ms", 100], ["h93", "s9-p3", "0ms", 100], ["h94", "s9-p4", "0ms", 100], ["h95", "s9-p5", "0ms", 100], ["h96", "s9-p6", "0ms", 100], ["h97", "s9-p7", "0ms", 100], ["h98", "s9-p8", "0ms", 100], ["h99", "s9-p9", "0ms", 100], ["h910", "s9-p10", "0ms", 100], ["h911", "s9-p11", "0ms", 100], ["h912", "s9-p12", "0ms", 100], ["h913", "s9-p13", "0ms", 100], ["h914", "s9-p14", "0ms", 100], ["h915", "s9-p15", "0ms", 100], ["h916", "s9-p16", "0ms", 100], ["ss1-p9", "s9-p17", "0ms", 100], ["ss2-p9", "s9-p18", "0ms", 100], ["ss3-p9", "s9-p19", "0ms", 100], ["ss4-p9", "s9-p20", "0ms", 100] + ] +} \ No newline at end of file diff --git a/exercises/basic/triangle-topo/s1-runtime.json b/exercises/basic/triangle-topo/s1-runtime.json index 9ef8d3aa..a5a8f125 100644 --- a/exercises/basic/triangle-topo/s1-runtime.json +++ b/exercises/basic/triangle-topo/s1-runtime.json @@ -33,7 +33,7 @@ }, "action_name": "MyIngress.ipv4_forward", "action_params": { - "dstAddr": "08:00:00:00:02:00", + "dstAddr": "08:00:00:00:02:22", "port": 2 } }, @@ -44,11 +44,81 @@ "10.0.3.3", 32 ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:03:33", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.4.4", + 32 + ] }, "action_name": "MyIngress.ipv4_forward", "action_params": { - "dstAddr": "08:00:00:00:03:00", - "port": 3 + "dstAddr": "08:00:00:00:04:44", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.5.5", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.6.6", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.7.7", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 5 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.8.8", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:02:00", + "port": 5 } } ] diff --git a/exercises/basic/triangle-topo/s2-runtime.json b/exercises/basic/triangle-topo/s2-runtime.json index e977059b..4f1bdf99 100644 --- a/exercises/basic/triangle-topo/s2-runtime.json +++ b/exercises/basic/triangle-topo/s2-runtime.json @@ -9,6 +9,62 @@ "action_name": "MyIngress.drop", "action_params": {} }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.5.5", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:05:55", + "port": 2 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.6.6", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:06:66", + "port": 3 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.7.7", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:07:77", + "port": 4 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.8.8", + 32 + ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:08:88", + "port": 5 + } + }, { "table": "MyIngress.ipv4_lpm", "match": { @@ -20,7 +76,7 @@ "action_name": "MyIngress.ipv4_forward", "action_params": { "dstAddr": "08:00:00:00:01:00", - "port": 2 + "port": 1 } }, { @@ -33,7 +89,7 @@ }, "action_name": "MyIngress.ipv4_forward", "action_params": { - "dstAddr": "08:00:00:00:02:22", + "dstAddr": "08:00:00:00:01:00", "port": 1 } }, @@ -44,11 +100,25 @@ "10.0.3.3", 32 ] + }, + "action_name": "MyIngress.ipv4_forward", + "action_params": { + "dstAddr": "08:00:00:00:01:00", + "port": 1 + } + }, + { + "table": "MyIngress.ipv4_lpm", + "match": { + "hdr.ipv4.dstAddr": [ + "10.0.4.4", + 32 + ] }, "action_name": "MyIngress.ipv4_forward", "action_params": { - "dstAddr": "08:00:00:00:03:00", - "port": 3 + "dstAddr": "08:00:00:00:01:00", + "port": 1 } } ] diff --git a/exercises/basic/triangle-topo/topology.json b/exercises/basic/triangle-topo/topology.json index a3d93dce..d45bb879 100644 --- a/exercises/basic/triangle-topo/topology.json +++ b/exercises/basic/triangle-topo/topology.json @@ -23,6 +23,46 @@ "route add default gw 10.0.3.30 dev eth0", "arp -i eth0 -s 10.0.3.30 08:00:00:00:03:00" ] + }, + "h4": { + "ip": "10.0.4.4/24", + "mac": "08:00:00:00:04:44", + "commands": [ + "route add default gw 10.0.4.40 dev eth0", + "arp -i eth0 -s 10.0.4.40 08:00:00:00:04:00" + ] + }, + "h5": { + "ip": "10.0.5.5/24", + "mac": "08:00:00:00:05:55", + "commands": [ + "route add default gw 10.0.5.50 dev eth0", + "arp -i eth0 -s 10.0.5.50 08:00:00:00:05:00" + ] + }, + "h6": { + "ip": "10.0.6.6/24", + "mac": "08:00:00:00:06:66", + "commands": [ + "route add default gw 10.0.6.60 dev eth0", + "arp -i eth0 -s 10.0.6.60 08:00:00:00:06:00" + ] + }, + "h7": { + "ip": "10.0.7.7/24", + "mac": "08:00:00:00:07:77", + "commands": [ + "route add default gw 10.0.7.70 dev eth0", + "arp -i eth0 -s 10.0.7.70 08:00:00:00:07:00" + ] + }, + "h8": { + "ip": "10.0.8.8/24", + "mac": "08:00:00:00:08:88", + "commands": [ + "route add default gw 10.0.8.80 dev eth0", + "arp -i eth0 -s 10.0.8.80 08:00:00:00:08:00" + ] } }, "switches": { @@ -31,35 +71,46 @@ }, "s2": { "runtime_json": "triangle-topo/s2-runtime.json" - }, - "s3": { - "runtime_json": "triangle-topo/s3-runtime.json" } }, "links": [ [ "h1", - "s1-p1" + "s1-p1", "0ms", 100 ], + [ - "s1-p2", - "s2-p2" + "h2", + "s1-p2", "0ms", 100 ], [ - "s1-p3", - "s3-p2" + "h3", + "s1-p3", "0ms", 100 ], [ - "s3-p3", - "s2-p3" + "h4", + "s1-p4", "0ms", 100 ], [ - "h2", - "s2-p1" + "s1-p5", + "s2-p1", "0ms", 10 ], [ - "h3", - "s3-p1" + "h5", + "s2-p2", "0ms", 100 + ], + [ + "h6", + "s2-p3", "0ms", 100 + ], + [ + "h7", + "s2-p4", "0ms", 100 + ], + [ + "h8", + "s2-p5", "0ms", 100 ] + ] } \ No newline at end of file diff --git a/exercises/qos/qos.p4 b/exercises/qos/qos.p4 index 3349c2d9..608a2ede 100644 --- a/exercises/qos/qos.p4 +++ b/exercises/qos/qos.p4 @@ -1,25 +1,14 @@ -// SPDX-License-Identifier: Apache-2.0 /* -*- P4_16 -*- */ #include #include -const bit<16> TYPE_IPV4 = 0x800; +extern pifo_scheduler { + pifo_scheduler(bit<1> verbose); +void my_scheduler(in T1 in_flow_id, in T1 idle_time, in T2 in_enq, in T1 in_pkt_ptr, in T2 reset_time); +void pass_rank_values ( in T1 rank_value, in T1 level_id); +} -/* IP protocols */ -const bit<8> IP_PROTOCOLS_ICMP = 1; -const bit<8> IP_PROTOCOLS_IGMP = 2; -const bit<8> IP_PROTOCOLS_IPV4 = 4; -const bit<8> IP_PROTOCOLS_TCP = 6; -const bit<8> IP_PROTOCOLS_UDP = 17; -const bit<8> IP_PROTOCOLS_IPV6 = 41; -const bit<8> IP_PROTOCOLS_GRE = 47; -const bit<8> IP_PROTOCOLS_IPSEC_ESP = 50; -const bit<8> IP_PROTOCOLS_IPSEC_AH = 51; -const bit<8> IP_PROTOCOLS_ICMPV6 = 58; -const bit<8> IP_PROTOCOLS_EIGRP = 88; -const bit<8> IP_PROTOCOLS_OSPF = 89; -const bit<8> IP_PROTOCOLS_PIM = 103; -const bit<8> IP_PROTOCOLS_VRRP = 112; +const bit<16> TYPE_IPV4 = 0x800; /************************************************************************* @@ -36,13 +25,11 @@ header ethernet_t { bit<16> etherType; } -/* - * TODO: split tos to two fields 6 bit diffserv and 2 bit ecn - */ header ipv4_t { bit<4> version; bit<4> ihl; - bit<8> tos; + bit<6> diffserv; + bit<2> ecn; bit<16> totalLen; bit<16> identification; bit<3> flags; @@ -52,8 +39,15 @@ header ipv4_t { bit<16> hdrChecksum; ip4Addr_t srcAddr; ip4Addr_t dstAddr; + bit<32> options; } +header ipv4_option_t { + bit<1> copyFlag; + bit<2> optClass; + bit<5> option; + bit<8> optionLength; +} struct metadata { } @@ -118,8 +112,6 @@ control MyIngress(inout headers hdr, hdr.ipv4.ttl = hdr.ipv4.ttl - 1; } -/* TODO: Implement actions for different traffic classes */ - table ipv4_lpm { key = { @@ -134,10 +126,62 @@ control MyIngress(inout headers hdr, default_action = NoAction(); } -/* TODO: set hdr.ipv4.diffserv on the basis of protocol */ + + @userextern @name("my_pifo") + pifo_scheduler,bit<1>>(1) my_pifo; + + bit <48> rank; + bit <48> in_idle_time = 15000; + bit <48> in_pkt_ptr; + bit <1> in_enq = 1; + bit <1> reset_time = 0; + bit <48> in_flow_id = 0; + + register>(1) register_last_ptr; + + action assign_flow_id(bit <48> flow_id) { + in_flow_id = flow_id; + } + + + table lookup_flow_id { + key = { + hdr.ipv4.srcAddr: lpm; + } + actions = { + assign_flow_id; + NoAction; + } + size = 1024; + default_action = NoAction(); + } + + apply { - if (hdr.ipv4.isValid()) { - ipv4_lpm.apply(); + + lookup_flow_id.apply(); + + register_last_ptr.read(in_pkt_ptr,0); + in_pkt_ptr = in_pkt_ptr + (bit<48>)(1); + register_last_ptr.write(0,in_pkt_ptr); + + rank = (bit<48>)(hdr.ipv4.options); + + reset_time = 0; + + my_pifo.pass_rank_values(rank,0); + + if(hdr.ipv4.dstAddr == 0) + { + drop(); + } + else + { + my_pifo.my_scheduler(in_flow_id, in_idle_time, in_enq, in_pkt_ptr, reset_time); + } + + if (hdr.ipv4.isValid()) { + ipv4_lpm.apply(); } } } @@ -152,19 +196,18 @@ control MyEgress(inout headers hdr, apply { } } - /************************************************************************* ************* C H E C K S U M C O M P U T A T I O N ************** *************************************************************************/ control MyComputeChecksum(inout headers hdr, inout metadata meta) { - apply { - /* TODO: replace tos with diffserv and ecn */ - update_checksum( - hdr.ipv4.isValid(), + apply { + update_checksum( + hdr.ipv4.isValid(), { hdr.ipv4.version, - hdr.ipv4.ihl, - hdr.ipv4.tos, + hdr.ipv4.ihl, + hdr.ipv4.diffserv, + hdr.ipv4.ecn, hdr.ipv4.totalLen, hdr.ipv4.identification, hdr.ipv4.flags, diff --git a/exercises/qos/switch_queue_debug.log b/exercises/qos/switch_queue_debug.log new file mode 100644 index 00000000..bfdbc719 --- /dev/null +++ b/exercises/qos/switch_queue_debug.log @@ -0,0 +1,1231 @@ +=== SimpleSwitch started at 1745612616881008 with 1 queue per port === +1745612617048503 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745612617200468 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745612617264350 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745612617329420 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745612617445426 with 1 queue per port === +1745612617456188 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745612617584171 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745612617584222 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745612617584415 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745612617648447 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745612617648576 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745612617648700 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745612617649158 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745612617651112 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745612617651241 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745612617652449 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745612617713240 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745612617713324 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745612617715590 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745612617715678 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745612617747551 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745612617748747 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745612617773298 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745612617776323 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745612617780596 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745612617781695 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745612617814515 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745612617816417 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745612617876945 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745612617894276 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745612617897582 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745612617958672 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745612617991588 with 1 queue per port === +1745612617993298 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745612618022488 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745612618032300 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745612618032434 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745612618035351 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745612618095284 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745612618096308 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745612618098550 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745612618101197 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745612618101685 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745612618103838 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745612618132511 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745612618132739 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745612618137180 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745612618144541 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745612618145641 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745612618145663 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745612618160157 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745612618161194 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745612618162307 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745612618165513 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745612618165554 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745612618196458 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745612618196461 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745612618209533 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745612618209742 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745612618225362 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745612618227538 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745612618227587 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745612618261025 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745612618273000 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745612618274216 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745612618278349 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745612618278392 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745612618282363 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745612618282368 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745612618325097 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745612618328294 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745612618328297 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745612618342279 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745612618343268 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745612618396318 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745612618396344 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745612618396449 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745612618407558 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745612618416308 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745612618418397 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745612618460160 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745612618461209 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745612618470214 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745612618522955 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745612618524145 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745612618529171 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745612618529226 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745612618544226 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745612618544363 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745612618592858 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745612618593813 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745612618595892 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745612618596093 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745612618597118 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745612618608335 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745612618608453 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745612618609267 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745612618609380 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745612618611137 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745612618611420 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745612618611614 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745612618611734 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745612618611850 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745612618611969 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745612618612090 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745612618614618 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745612618656928 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745612618660138 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745612618660193 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745612618704389 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745612618708545 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745612618708699 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745612618708827 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745612618709664 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745612618721089 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745612618723016 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745612618724047 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745612618736303 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745612618738317 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745612618738447 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745612618748218 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745612618749461 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745612618750368 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745612618779636 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745612618779861 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745612618814412 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745612618814523 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745612618843528 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745612618843598 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745612618853880 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745612618855114 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745612618855117 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745612618855916 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745612618865330 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745612618907375 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745612618927219 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745612618973413 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745612618978410 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745612618979372 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745612618993259 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745612618994249 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745612618994381 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745612618995516 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745612619043799 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745612619043813 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745612619105536 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745612619105556 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745612619105592 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745612619105691 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745612619108676 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745612619120220 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745612619120252 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745612619132799 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745612619132961 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745612619171138 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745612619198358 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745612619198359 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745612619263029 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745612619325240 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745612619355263 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745612619355327 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745612619355327 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745612619355391 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745612619358665 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745612619358789 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745612619505338 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745612619505371 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745612619555804 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745612619555825 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745612619556882 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745612619559127 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745612619632375 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745612619632379 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745612619632381 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745612619632500 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745612619708466 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745612619709417 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745612619709437 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745612619709558 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745612619791692 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745612619792806 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745612619794123 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745612619855365 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745612619855370 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745612619919595 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745612619919667 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745612620175066 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745612620175130 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745612620239186 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745612620240223 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745612620305611 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745612620366746 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745612620749644 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745612620750625 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745612620750663 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745612620751984 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745612620752875 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745612620752904 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745612620753010 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745612620815230 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745612620815232 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745612620877535 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745612620878648 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745612621133429 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745612621133432 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745612621198861 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745612621198889 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745612621262599 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745612621325872 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745612621616362 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745612621616551 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745612621681342 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745612621709604 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745612621709680 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745612621709680 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745612621711924 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745612621744352 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745612621745329 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745612621872282 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745612621872282 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745612621985266 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745612621986396 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745612621987468 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745612622000369 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745612622001325 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745612622050610 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745612622050617 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745612622114310 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745612622115362 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745612622128267 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745612622256304 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745612622256330 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745612622370548 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745612622370550 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745612622384382 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745612622384385 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745612622433660 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745612622434731 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745612622499075 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745612622512371 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745612622512435 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745612622512532 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745612622562203 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745612622945834 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745612622946062 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745612622948017 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745612622950250 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745612624750971 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745612624750992 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745612624752185 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745612624815237 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745612624816387 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745612624877572 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745612624878470 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745612625133205 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745612625133324 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745612625199563 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745612625199625 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745612625263237 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745612625326457 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745612625710085 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745612625710271 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745612625712262 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745612625713393 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745612625832583 - ENQUEUE: Packet 104 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612629168263 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745612629168345 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745612629168466 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745612629168941 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745612629680288 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745612629680291 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745612629680367 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745612629682480 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745612629682523 - DROP: Packet 107 at end of ingress (egress_spec == drop_port) +1745612630192255 - DROP: Packet 108 at end of ingress (egress_spec == drop_port) +1745612630192422 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745612630194709 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745612630705164 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745612631216218 - DROP: Packet 109 at end of ingress (egress_spec == drop_port) +1745612631216291 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745612631728175 - DROP: Packet 110 at end of ingress (egress_spec == drop_port) +1745612631729344 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745612632755214 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745612632755340 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745612632756315 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745612632816376 - DROP: Packet 111 at end of ingress (egress_spec == drop_port) +1745612632817622 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745612632877752 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745612632878638 - DROP: Packet 112 at end of ingress (egress_spec == drop_port) +1745612633133595 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745612633134596 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745612633199873 - DROP: Packet 113 at end of ingress (egress_spec == drop_port) +1745612633200094 - DROP: Packet 107 at end of ingress (egress_spec == drop_port) +1745612633263737 - DROP: Packet 108 at end of ingress (egress_spec == drop_port) +1745612633326805 - DROP: Packet 114 at end of ingress (egress_spec == drop_port) +1745612633710882 - DROP: Packet 115 at end of ingress (egress_spec == drop_port) +1745612633711099 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745612633712214 - DROP: Packet 109 at end of ingress (egress_spec == drop_port) +1745612633713028 - DROP: Packet 116 at end of ingress (egress_spec == drop_port) +1745612635833960 - ENQUEUE: Packet 117 to port 4 with priority 0 (queue 0), queue depth before: 0 +1745612642992239 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745612642992415 - DROP: Packet 110 at end of ingress (egress_spec == drop_port) +1745612643504207 - DROP: Packet 118 at end of ingress (egress_spec == drop_port) +1745612643504297 - DROP: Packet 111 at end of ingress (egress_spec == drop_port) +1745612644015226 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745612644016275 - DROP: Packet 119 at end of ingress (egress_spec == drop_port) +1745612645040119 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745612645040177 - DROP: Packet 112 at end of ingress (egress_spec == drop_port) +1745612645552198 - DROP: Packet 113 at end of ingress (egress_spec == drop_port) +1745612645552232 - DROP: Packet 120 at end of ingress (egress_spec == drop_port) +1745612646064300 - DROP: Packet 114 at end of ingress (egress_spec == drop_port) +1745612646065229 - DROP: Packet 121 at end of ingress (egress_spec == drop_port) +1745612648133311 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745612648629524 - DROP: Packet 122 at end of ingress (egress_spec == drop_port) +1745612648756088 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745612648758243 - DROP: Packet 115 at end of ingress (egress_spec == drop_port) +1745612648761532 - DROP: Packet 116 at end of ingress (egress_spec == drop_port) +1745612648816505 - DROP: Packet 123 at end of ingress (egress_spec == drop_port) +1745612648816624 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745612648879881 - DROP: Packet 124 at end of ingress (egress_spec == drop_port) +1745612648880110 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745612649133976 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745612649133982 - DROP: Packet 117 at end of ingress (egress_spec == drop_port) +1745612649200318 - DROP: Packet 125 at end of ingress (egress_spec == drop_port) +1745612649201428 - DROP: Packet 118 at end of ingress (egress_spec == drop_port) +1745612649264047 - DROP: Packet 119 at end of ingress (egress_spec == drop_port) +1745612649327379 - DROP: Packet 126 at end of ingress (egress_spec == drop_port) +1745612649711308 - DROP: Packet 127 at end of ingress (egress_spec == drop_port) +1745612649711407 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745612649711412 - DROP: Packet 120 at end of ingress (egress_spec == drop_port) +1745612649713498 - DROP: Packet 128 at end of ingress (egress_spec == drop_port) +1745612650160437 - DROP: Packet 121 at end of ingress (egress_spec == drop_port) +1745612651184197 - DROP: Packet 129 at end of ingress (egress_spec == drop_port) +1745612651184291 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745612670128401 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745612670128417 - DROP: Packet 122 at end of ingress (egress_spec == drop_port) +1745612671664211 - DROP: Packet 130 at end of ingress (egress_spec == drop_port) +1745612671664309 - DROP: Packet 123 at end of ingress (egress_spec == drop_port) +1745612671664383 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745612671666366 - DROP: Packet 131 at end of ingress (egress_spec == drop_port) +1745612675760417 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745612675761506 - DROP: Packet 124 at end of ingress (egress_spec == drop_port) +1745612676784171 - DROP: Packet 132 at end of ingress (egress_spec == drop_port) +1745612676784292 - DROP: Packet 125 at end of ingress (egress_spec == drop_port) +1745612677808419 - DROP: Packet 126 at end of ingress (egress_spec == drop_port) +1745612680756643 - DROP: Packet 127 at end of ingress (egress_spec == drop_port) +1745612680756777 - DROP: Packet 128 at end of ingress (egress_spec == drop_port) +1745612680757829 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745612680816873 - DROP: Packet 133 at end of ingress (egress_spec == drop_port) +1745612680817059 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745612680880208 - DROP: Packet 134 at end of ingress (egress_spec == drop_port) +1745612680880412 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745612680881306 - DROP: Packet 135 at end of ingress (egress_spec == drop_port) +1745612681134323 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745612681134325 - DROP: Packet 129 at end of ingress (egress_spec == drop_port) +1745612681200347 - DROP: Packet 136 at end of ingress (egress_spec == drop_port) +1745612681200481 - DROP: Packet 130 at end of ingress (egress_spec == drop_port) +1745612681264116 - DROP: Packet 131 at end of ingress (egress_spec == drop_port) +1745612681327091 - DROP: Packet 137 at end of ingress (egress_spec == drop_port) +1745612681711881 - DROP: Packet 138 at end of ingress (egress_spec == drop_port) +1745612681712142 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745612681712980 - DROP: Packet 132 at end of ingress (egress_spec == drop_port) +1745612681714019 - DROP: Packet 139 at end of ingress (egress_spec == drop_port) +1745612684976243 - DROP: Packet 140 at end of ingress (egress_spec == drop_port) +1745612684977250 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745612689072220 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745612689072221 - DROP: Packet 141 at end of ingress (egress_spec == drop_port) +1745612689073256 - DROP: Packet 133 at end of ingress (egress_spec == drop_port) +1745612725936277 - DROP: Packet 142 at end of ingress (egress_spec == drop_port) +1745612725937227 - DROP: Packet 134 at end of ingress (egress_spec == drop_port) +1745612725937300 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745612725939451 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745612730032263 - DROP: Packet 135 at end of ingress (egress_spec == drop_port) +1745612730032267 - DROP: Packet 143 at end of ingress (egress_spec == drop_port) +1745612734049679 - ENQUEUE: Packet 144 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612735088294 - ENQUEUE: Packet 145 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612736112407 - ENQUEUE: Packet 146 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612737156188 - ENQUEUE: Packet 147 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612738160385 - ENQUEUE: Packet 148 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612738224206 - DROP: Packet 136 at end of ingress (egress_spec == drop_port) +1745612738224233 - DROP: Packet 149 at end of ingress (egress_spec == drop_port) +1745612738225310 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745612738227387 - DROP: Packet 137 at end of ingress (egress_spec == drop_port) +1745612739184300 - ENQUEUE: Packet 150 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612741232368 - ENQUEUE: Packet 151 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612744757174 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745612744757195 - DROP: Packet 138 at end of ingress (egress_spec == drop_port) +1745612744759416 - DROP: Packet 139 at end of ingress (egress_spec == drop_port) +1745612744817491 - DROP: Packet 152 at end of ingress (egress_spec == drop_port) +1745612744817547 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745612744880772 - DROP: Packet 153 at end of ingress (egress_spec == drop_port) +1745612744880950 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745612745134609 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745612745134739 - DROP: Packet 140 at end of ingress (egress_spec == drop_port) +1745612745200740 - DROP: Packet 154 at end of ingress (egress_spec == drop_port) +1745612745200927 - DROP: Packet 141 at end of ingress (egress_spec == drop_port) +1745612745264119 - DROP: Packet 142 at end of ingress (egress_spec == drop_port) +1745612745264260 - ENQUEUE: Packet 155 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612745327306 - DROP: Packet 156 at end of ingress (egress_spec == drop_port) +1745612745712211 - DROP: Packet 157 at end of ingress (egress_spec == drop_port) +1745612745712264 - DROP: Packet 158 at end of ingress (egress_spec == drop_port) +1745612745712363 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745612745712419 - DROP: Packet 143 at end of ingress (egress_spec == drop_port) +1745612746415397 - DROP: Packet 144 at end of ingress (egress_spec == drop_port) +1745612750513285 - DROP: Packet 159 at end of ingress (egress_spec == drop_port) +1745612753584353 - ENQUEUE: Packet 160 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745612754608397 - DROP: Packet 161 at end of ingress (egress_spec == drop_port) +1745612758705368 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745612762800455 - DROP: Packet 145 at end of ingress (egress_spec == drop_port) +1745612766896227 - DROP: Packet 162 at end of ingress (egress_spec == drop_port) +1745612766897422 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745612832432276 - DROP: Packet 163 at end of ingress (egress_spec == drop_port) +1745612832432400 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745612840623381 - DROP: Packet 146 at end of ingress (egress_spec == drop_port) +1745612840624416 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745612844720202 - DROP: Packet 164 at end of ingress (egress_spec == drop_port) +1745612844720424 - DROP: Packet 147 at end of ingress (egress_spec == drop_port) +1745612852912480 - DROP: Packet 148 at end of ingress (egress_spec == drop_port) +1745612852913512 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745612861104184 - DROP: Packet 165 at end of ingress (egress_spec == drop_port) +1745612861104408 - DROP: Packet 149 at end of ingress (egress_spec == drop_port) +1745612872757777 - DROP: Packet 150 at end of ingress (egress_spec == drop_port) +1745612872758904 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745612872760223 - DROP: Packet 151 at end of ingress (egress_spec == drop_port) +1745612872817836 - DROP: Packet 166 at end of ingress (egress_spec == drop_port) +1745612872818063 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745612872881149 - DROP: Packet 167 at end of ingress (egress_spec == drop_port) +1745612872881243 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745612873135122 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745612873136267 - DROP: Packet 152 at end of ingress (egress_spec == drop_port) +1745612873201079 - DROP: Packet 168 at end of ingress (egress_spec == drop_port) +1745612873201221 - DROP: Packet 153 at end of ingress (egress_spec == drop_port) +1745612873264533 - DROP: Packet 154 at end of ingress (egress_spec == drop_port) +1745612873327537 - DROP: Packet 169 at end of ingress (egress_spec == drop_port) +1745612873713201 - DROP: Packet 170 at end of ingress (egress_spec == drop_port) +1745612873713331 - DROP: Packet 155 at end of ingress (egress_spec == drop_port) +1745612873713354 - DROP: Packet 107 at end of ingress (egress_spec == drop_port) +1745612873715353 - DROP: Packet 171 at end of ingress (egress_spec == drop_port) +1745612877489470 - DROP: Packet 156 at end of ingress (egress_spec == drop_port) +1745612889776352 - DROP: Packet 172 at end of ingress (egress_spec == drop_port) +1745612893872263 - DROP: Packet 173 at end of ingress (egress_spec == drop_port) +1745612897969400 - DROP: Packet 108 at end of ingress (egress_spec == drop_port) +1745612902064489 - DROP: Packet 157 at end of ingress (egress_spec == drop_port) +1745612922544282 - DROP: Packet 174 at end of ingress (egress_spec == drop_port) +1745612922544416 - DROP: Packet 109 at end of ingress (egress_spec == drop_port) +1745613037232228 - DROP: Packet 175 at end of ingress (egress_spec == drop_port) +1745613037232300 - DROP: Packet 110 at end of ingress (egress_spec == drop_port) +1745613070000398 - DROP: Packet 111 at end of ingress (egress_spec == drop_port) +1745613070000435 - DROP: Packet 158 at end of ingress (egress_spec == drop_port) +1745613074096349 - DROP: Packet 176 at end of ingress (egress_spec == drop_port) +1745613074096390 - DROP: Packet 159 at end of ingress (egress_spec == drop_port) +1745613082288483 - DROP: Packet 112 at end of ingress (egress_spec == drop_port) +1745613082288482 - DROP: Packet 160 at end of ingress (egress_spec == drop_port) +1745613094576236 - DROP: Packet 177 at end of ingress (egress_spec == drop_port) +1745613094576404 - DROP: Packet 161 at end of ingress (egress_spec == drop_port) +1745613128759717 - DROP: Packet 162 at end of ingress (egress_spec == drop_port) +1745613128759723 - DROP: Packet 113 at end of ingress (egress_spec == drop_port) +1745613128761018 - DROP: Packet 163 at end of ingress (egress_spec == drop_port) +1745613128818827 - DROP: Packet 114 at end of ingress (egress_spec == drop_port) +1745613128818840 - DROP: Packet 178 at end of ingress (egress_spec == drop_port) +1745613128881979 - DROP: Packet 179 at end of ingress (egress_spec == drop_port) +1745613128882139 - DROP: Packet 115 at end of ingress (egress_spec == drop_port) +1745613129134848 - DROP: Packet 116 at end of ingress (egress_spec == drop_port) +1745613129136009 - DROP: Packet 164 at end of ingress (egress_spec == drop_port) +1745613129201880 - DROP: Packet 180 at end of ingress (egress_spec == drop_port) +1745613129202111 - DROP: Packet 165 at end of ingress (egress_spec == drop_port) +1745613129266507 - DROP: Packet 166 at end of ingress (egress_spec == drop_port) +1745613129328519 - DROP: Packet 181 at end of ingress (egress_spec == drop_port) +1745613129714290 - DROP: Packet 182 at end of ingress (egress_spec == drop_port) +1745613129714361 - DROP: Packet 117 at end of ingress (egress_spec == drop_port) +1745613129714366 - DROP: Packet 167 at end of ingress (egress_spec == drop_port) +1745613129716468 - DROP: Packet 183 at end of ingress (egress_spec == drop_port) +1745613160113580 - DROP: Packet 168 at end of ingress (egress_spec == drop_port) +1745613192880332 - DROP: Packet 184 at end of ingress (egress_spec == drop_port) +1745613192881312 - DROP: Packet 169 at end of ingress (egress_spec == drop_port) +1745613192881381 - DROP: Packet 118 at end of ingress (egress_spec == drop_port) +1745613192882513 - DROP: Packet 185 at end of ingress (egress_spec == drop_port) +1745613258416228 - DROP: Packet 186 at end of ingress (egress_spec == drop_port) +1745613258416441 - DROP: Packet 119 at end of ingress (egress_spec == drop_port) +1745613455024284 - DROP: Packet 187 at end of ingress (egress_spec == drop_port) +1745613455024432 - DROP: Packet 120 at end of ingress (egress_spec == drop_port) +1745613520560312 - DROP: Packet 170 at end of ingress (egress_spec == drop_port) +1745613520560321 - DROP: Packet 121 at end of ingress (egress_spec == drop_port) +1745613553328194 - DROP: Packet 188 at end of ingress (egress_spec == drop_port) +1745613553328389 - DROP: Packet 171 at end of ingress (egress_spec == drop_port) +1745613553328449 - DROP: Packet 122 at end of ingress (egress_spec == drop_port) +1745613553328516 - DROP: Packet 172 at end of ingress (egress_spec == drop_port) +1745613553329745 - DROP: Packet 173 at end of ingress (egress_spec == drop_port) +1745613553330351 - DROP: Packet 189 at end of ingress (egress_spec == drop_port) +1745613640762135 - DROP: Packet 123 at end of ingress (egress_spec == drop_port) +1745613640762170 - DROP: Packet 174 at end of ingress (egress_spec == drop_port) +1745613640764451 - DROP: Packet 175 at end of ingress (egress_spec == drop_port) +1745613640819342 - DROP: Packet 190 at end of ingress (egress_spec == drop_port) +1745613640819404 - DROP: Packet 124 at end of ingress (egress_spec == drop_port) +1745613640882677 - DROP: Packet 191 at end of ingress (egress_spec == drop_port) +1745613640882920 - DROP: Packet 125 at end of ingress (egress_spec == drop_port) +1745613641136918 - DROP: Packet 126 at end of ingress (egress_spec == drop_port) +1745613641136918 - DROP: Packet 176 at end of ingress (egress_spec == drop_port) +1745613641202924 - DROP: Packet 192 at end of ingress (egress_spec == drop_port) +1745613641203192 - DROP: Packet 177 at end of ingress (egress_spec == drop_port) +1745613641265397 - DROP: Packet 178 at end of ingress (egress_spec == drop_port) +1745613641328667 - DROP: Packet 193 at end of ingress (egress_spec == drop_port) +1745613641714531 - DROP: Packet 194 at end of ingress (egress_spec == drop_port) +1745613641714593 - DROP: Packet 127 at end of ingress (egress_spec == drop_port) +1745613641714640 - DROP: Packet 179 at end of ingress (egress_spec == drop_port) +1745613641716770 - DROP: Packet 195 at end of ingress (egress_spec == drop_port) +1745613684401483 - DROP: Packet 180 at end of ingress (egress_spec == drop_port) +1745613749936383 - DROP: Packet 196 at end of ingress (egress_spec == drop_port) +1745613749937318 - DROP: Packet 181 at end of ingress (egress_spec == drop_port) +1745613749937353 - DROP: Packet 128 at end of ingress (egress_spec == drop_port) +1745613749938627 - DROP: Packet 197 at end of ingress (egress_spec == drop_port) +1745613913776423 - DROP: Packet 129 at end of ingress (egress_spec == drop_port) +1745613913776430 - DROP: Packet 198 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745614182746844 with 1 queue per port === +1745614182880619 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745614182959341 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745614182999081 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745614183088218 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745614183089321 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745614183151107 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745614183215086 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745614183280165 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745614183301005 with 1 queue per port === +1745614183345154 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745614183407414 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745614183471260 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745614183472134 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745614183473253 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745614183473253 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745614183793324 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745614183794534 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745614183797303 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745614183846134 with 1 queue per port === +1745614183892708 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745614183893964 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745614183920356 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745614183921555 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745614183922157 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745614183943504 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745614183944528 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745614183983355 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745614183984418 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745614183984572 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745614183986649 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745614183987144 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745614183987170 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745614184019434 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745614184047085 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745614184047273 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745614184048194 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745614184049641 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745614184049772 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745614184049898 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745614184050311 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745614184050478 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745614184052344 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745614184055220 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745614184071241 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745614184083281 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745614184084520 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745614184111067 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745614184112154 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745614184112172 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745614184113258 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745614184114049 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745614184114058 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745614184135335 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745614184135542 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745614184150960 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745614184168306 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745614184175277 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745614184176330 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745614184176497 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745614184178619 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745614184179246 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745614184180408 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745614184194493 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745614184195549 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745614184199485 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745614184199712 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745614184200617 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745614184201007 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745614184203262 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745614184211583 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745614184212879 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745614184215056 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745614184231321 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745614184232241 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745614184240252 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745614184240254 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745614184262038 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745614184262930 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745614184276123 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745614184277357 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745614184320544 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745614184325635 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745614184325797 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745614184335045 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745614184336267 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745614184367207 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745614184368202 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745614184368329 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745614184370187 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745614184370360 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745614184371463 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745614184383101 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745614184384775 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745614184385672 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745614184431159 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745614184432266 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745614184435050 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745614184444291 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745614184445360 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745614184448361 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745614184449422 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745614184450523 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745614184457868 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745614184457898 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745614184467648 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745614184467650 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745614184496313 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745614184496313 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745614184497450 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745614184497450 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745614184498087 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745614184499274 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745614184513334 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745614184514532 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745614184519527 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745614184519691 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745614184528156 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745614184528274 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745614184532048 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745614184559252 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745614184560251 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745614184572762 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745614184576851 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745614184577923 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745614184582038 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745614184596305 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745614184597332 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745614184624170 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745614184624190 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745614184634780 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745614184634887 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745614184643989 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745614184644104 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745614184646197 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745614184647276 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745614184648483 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745614184687249 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745614184688296 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745614184700051 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745614184700179 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745614184701155 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745614184751257 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745614184751257 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745614184763943 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745614184764998 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745614184769100 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745614184770135 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745614184772234 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745614184828432 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745614184828432 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745614184831461 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745614184834600 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745614184834628 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745614184879240 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745614184880229 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745614184881501 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745614184894327 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745614184894336 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745614184896381 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745614184897398 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745614184898496 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745614184898538 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745614184900699 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745614184943322 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745614184964260 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745614184965172 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745614185008176 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745614185019882 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745614185019961 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745614185020995 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745614185027105 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745614185027128 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745614185082477 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745614185083545 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745614185083635 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745614185148251 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745614185148324 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745614185149217 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745614185199091 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745614185212776 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745614185212804 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745614185219936 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745614185219957 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745614185263194 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745614185277344 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745614185278567 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745614185282454 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745614185327238 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745614185328216 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745614185348029 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745614185348179 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745614185469136 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745614185469174 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745614185532465 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745614185597987 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745614185598043 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745614185744449 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745614185745641 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745614185871133 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745614185934410 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745614185935614 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745614185998831 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745614185999722 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745614186001911 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745614186064206 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745614186065225 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745614186127349 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745614186127430 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745614186319854 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745614186320893 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745614186383052 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745614186448405 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745614186448405 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745614186894624 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745614186894624 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745614187021525 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745614187084962 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745614187084963 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745614187149347 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745614187212839 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745614187212880 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745614187277037 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745614187278216 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745614187469065 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745614187470240 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745614187533316 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745614187597604 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745614187598657 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745614187695310 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745614187696344 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745614187823343 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745614187824358 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745614187844246 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745614187845355 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745614187971846 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745614188015548 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745614188034814 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745614188034957 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745614188099191 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745614188100042 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745614188100321 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745614188164433 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745614188164471 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745614188207238 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745614188207321 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745614188208130 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745614188208550 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745614188209230 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745614188209483 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745614188211740 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745614188227667 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745614188227822 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745614188337290 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745614188420227 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745614188421316 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745614188484707 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745614188547834 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745614188547888 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745614188720323 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745614188720339 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745614188721240 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745614188721521 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745614190895626 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745614190896697 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745614191021682 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745614191086411 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745614191087365 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745614191149899 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745614191213635 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745614191214672 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745614191278027 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745614191279140 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745614191470502 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745614191470645 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745614191535381 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745614191598699 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745614191598883 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745614192486668 - ENQUEUE: Packet 103 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614195887194 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745614195887351 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745614195888288 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745614195889353 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745614195889637 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745614195890565 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745614195892808 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745614196399124 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745614196400388 - DROP: Packet 107 at end of ingress (egress_spec == drop_port) +1745614196400389 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745614196401630 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745614196402748 - DROP: Packet 108 at end of ingress (egress_spec == drop_port) +1745614196402899 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745614196912235 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745614197936122 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745614197937296 - DROP: Packet 109 at end of ingress (egress_spec == drop_port) +1745614197937385 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745614198895743 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745614198896773 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745614199023438 - DROP: Packet 110 at end of ingress (egress_spec == drop_port) +1745614199086776 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745614199087825 - DROP: Packet 111 at end of ingress (egress_spec == drop_port) +1745614199150381 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745614199213786 - DROP: Packet 112 at end of ingress (egress_spec == drop_port) +1745614199214759 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745614199278025 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745614199278105 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745614199470823 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745614199471990 - DROP: Packet 113 at end of ingress (egress_spec == drop_port) +1745614199535340 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745614199599559 - DROP: Packet 114 at end of ingress (egress_spec == drop_port) +1745614199599559 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745614202490054 - ENQUEUE: Packet 115 to port 4 with priority 0 (queue 0), queue depth before: 0 +1745614210736164 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745614210736369 - DROP: Packet 116 at end of ingress (egress_spec == drop_port) +1745614210738660 - DROP: Packet 117 at end of ingress (egress_spec == drop_port) +1745614211248411 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745614211248462 - DROP: Packet 118 at end of ingress (egress_spec == drop_port) +1745614212271132 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745614212271284 - DROP: Packet 107 at end of ingress (egress_spec == drop_port) +1745614212272391 - DROP: Packet 119 at end of ingress (egress_spec == drop_port) +1745614212272516 - DROP: Packet 108 at end of ingress (egress_spec == drop_port) +1745614212272653 - DROP: Packet 109 at end of ingress (egress_spec == drop_port) +1745614212273292 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745614212491270 - ENQUEUE: Packet 120 to port 1 with priority 0 (queue 0), queue depth before: 0 +1745614213296348 - DROP: Packet 110 at end of ingress (egress_spec == drop_port) +1745614213296354 - DROP: Packet 121 at end of ingress (egress_spec == drop_port) +1745614213808171 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745614214896515 - DROP: Packet 111 at end of ingress (egress_spec == drop_port) +1745614214897377 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745614215024033 - DROP: Packet 122 at end of ingress (egress_spec == drop_port) +1745614215088251 - DROP: Packet 112 at end of ingress (egress_spec == drop_port) +1745614215088259 - DROP: Packet 123 at end of ingress (egress_spec == drop_port) +1745614215150393 - DROP: Packet 113 at end of ingress (egress_spec == drop_port) +1745614215215012 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745614215219000 - DROP: Packet 124 at end of ingress (egress_spec == drop_port) +1745614215279030 - DROP: Packet 114 at end of ingress (egress_spec == drop_port) +1745614215279188 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745614215471714 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745614215472639 - DROP: Packet 125 at end of ingress (egress_spec == drop_port) +1745614215535814 - DROP: Packet 115 at end of ingress (egress_spec == drop_port) +1745614215599078 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745614215600017 - DROP: Packet 126 at end of ingress (egress_spec == drop_port) +1745614215857122 - DROP: Packet 127 at end of ingress (egress_spec == drop_port) +1745614215857206 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745614216368157 - DROP: Packet 116 at end of ingress (egress_spec == drop_port) +1745614222492484 - ENQUEUE: Packet 128 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614232494251 - ENQUEUE: Packet 117 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614240432333 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745614240433432 - DROP: Packet 129 at end of ingress (egress_spec == drop_port) +1745614240944150 - DROP: Packet 130 at end of ingress (egress_spec == drop_port) +1745614242479415 - DROP: Packet 118 at end of ingress (egress_spec == drop_port) +1745614242480228 - DROP: Packet 131 at end of ingress (egress_spec == drop_port) +1745614242495482 - ENQUEUE: Packet 119 to port 4 with priority 0 (queue 0), queue depth before: 0 +1745614242992268 - DROP: Packet 120 at end of ingress (egress_spec == drop_port) +1745614242992328 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745614242992969 - DROP: Packet 132 at end of ingress (egress_spec == drop_port) +1745614242995498 - DROP: Packet 121 at end of ingress (egress_spec == drop_port) +1745614243503193 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745614243504151 - DROP: Packet 122 at end of ingress (egress_spec == drop_port) +1745614245552157 - DROP: Packet 123 at end of ingress (egress_spec == drop_port) +1745614245552230 - DROP: Packet 133 at end of ingress (egress_spec == drop_port) +1745614246898226 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745614246898265 - DROP: Packet 124 at end of ingress (egress_spec == drop_port) +1745614247024863 - DROP: Packet 134 at end of ingress (egress_spec == drop_port) +1745614247089217 - DROP: Packet 125 at end of ingress (egress_spec == drop_port) +1745614247091224 - DROP: Packet 135 at end of ingress (egress_spec == drop_port) +1745614247175755 - DROP: Packet 126 at end of ingress (egress_spec == drop_port) +1745614247216170 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745614247216259 - DROP: Packet 136 at end of ingress (egress_spec == drop_port) +1745614247279515 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745614247279533 - DROP: Packet 127 at end of ingress (egress_spec == drop_port) +1745614247473983 - DROP: Packet 137 at end of ingress (egress_spec == drop_port) +1745614247474658 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745614247537158 - DROP: Packet 128 at end of ingress (egress_spec == drop_port) +1745614247601566 - DROP: Packet 138 at end of ingress (egress_spec == drop_port) +1745614247601619 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745614249648438 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745614252495595 - ENQUEUE: Packet 129 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614253744254 - DROP: Packet 130 at end of ingress (egress_spec == drop_port) +1745614253744348 - DROP: Packet 139 at end of ingress (egress_spec == drop_port) +1745614253744424 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745614262497683 - ENQUEUE: Packet 131 to port 1 with priority 0 (queue 0), queue depth before: 0 +1745614272499352 - ENQUEUE: Packet 107 to port 2 with priority 0 (queue 0), queue depth before: 0 +1745614282500723 - ENQUEUE: Packet 108 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614292502070 - ENQUEUE: Packet 109 to port 2 with priority 0 (queue 0), queue depth before: 0 +1745614298800193 - DROP: Packet 140 at end of ingress (egress_spec == drop_port) +1745614298800235 - DROP: Packet 110 at end of ingress (egress_spec == drop_port) +1745614302503714 - ENQUEUE: Packet 111 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614302896484 - DROP: Packet 141 at end of ingress (egress_spec == drop_port) +1745614302898664 - DROP: Packet 142 at end of ingress (egress_spec == drop_port) +1745614306992239 - DROP: Packet 143 at end of ingress (egress_spec == drop_port) +1745614306992324 - DROP: Packet 112 at end of ingress (egress_spec == drop_port) +1745614306992363 - DROP: Packet 132 at end of ingress (egress_spec == drop_port) +1745614306995520 - DROP: Packet 133 at end of ingress (egress_spec == drop_port) +1745614306995567 - DROP: Packet 134 at end of ingress (egress_spec == drop_port) +1745614310898940 - DROP: Packet 113 at end of ingress (egress_spec == drop_port) +1745614310898940 - DROP: Packet 135 at end of ingress (egress_spec == drop_port) +1745614311025044 - DROP: Packet 144 at end of ingress (egress_spec == drop_port) +1745614311088206 - DROP: Packet 136 at end of ingress (egress_spec == drop_port) +1745614311088252 - DROP: Packet 145 at end of ingress (egress_spec == drop_port) +1745614311088252 - DROP: Packet 114 at end of ingress (egress_spec == drop_port) +1745614311090369 - DROP: Packet 146 at end of ingress (egress_spec == drop_port) +1745614311090391 - DROP: Packet 137 at end of ingress (egress_spec == drop_port) +1745614311092556 - DROP: Packet 138 at end of ingress (egress_spec == drop_port) +1745614311152704 - DROP: Packet 139 at end of ingress (egress_spec == drop_port) +1745614311215909 - DROP: Packet 147 at end of ingress (egress_spec == drop_port) +1745614311215910 - DROP: Packet 115 at end of ingress (egress_spec == drop_port) +1745614311279334 - DROP: Packet 140 at end of ingress (egress_spec == drop_port) +1745614311279343 - DROP: Packet 116 at end of ingress (egress_spec == drop_port) +1745614311474340 - DROP: Packet 117 at end of ingress (egress_spec == drop_port) +1745614311474342 - DROP: Packet 148 at end of ingress (egress_spec == drop_port) +1745614311537627 - DROP: Packet 141 at end of ingress (egress_spec == drop_port) +1745614311602088 - DROP: Packet 118 at end of ingress (egress_spec == drop_port) +1745614311602091 - DROP: Packet 149 at end of ingress (egress_spec == drop_port) +1745614312505015 - ENQUEUE: Packet 150 to port 2 with priority 0 (queue 0), queue depth before: 0 +1745614315184171 - DROP: Packet 119 at end of ingress (egress_spec == drop_port) +1745614327472166 - DROP: Packet 142 at end of ingress (egress_spec == drop_port) +1745614327472189 - DROP: Packet 120 at end of ingress (egress_spec == drop_port) +1745614327472189 - DROP: Packet 151 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745614564734174 with 1 queue per port === +1745614564976367 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745614565040237 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745614565231253 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745614565275536 with 1 queue per port === +1745614565296306 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745614565360276 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745614565360412 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745614565360464 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745614565362719 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745614565424418 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745614565426717 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745614565427247 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745614565487305 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745614565488527 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745614565490827 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745614565490953 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745614565524814 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745614565551368 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745614565551369 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745614565552573 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745614565552578 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745614565555380 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745614565555417 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745614565589651 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745614565652029 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745614565652030 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745614565679332 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745614565719670 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745614565782475 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745614565807299 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745614565808388 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745614565809546 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745614565809614 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745614565810404 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745614565811419 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +=== SimpleSwitch started at 1745614565823642 with 1 queue per port === +1745614565848031 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745614565848045 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745614565871441 - DROP: Packet 0 at end of ingress (egress_spec == drop_port) +1745614565872386 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745614565872529 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745614565872646 - DROP: Packet 1 at end of ingress (egress_spec == drop_port) +1745614565874162 - DROP: Packet 2 at end of ingress (egress_spec == drop_port) +1745614565875309 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745614565907699 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745614565907718 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745614565920303 - DROP: Packet 3 at end of ingress (egress_spec == drop_port) +1745614565952205 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745614565971302 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745614565972308 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745614565973391 - DROP: Packet 4 at end of ingress (egress_spec == drop_port) +1745614566000265 - DROP: Packet 5 at end of ingress (egress_spec == drop_port) +1745614566001259 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745614566002433 - DROP: Packet 6 at end of ingress (egress_spec == drop_port) +1745614566003512 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745614566003647 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745614566004250 - DROP: Packet 7 at end of ingress (egress_spec == drop_port) +1745614566033624 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745614566034581 - DROP: Packet 8 at end of ingress (egress_spec == drop_port) +1745614566068366 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745614566069587 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745614566071231 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745614566071322 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745614566071458 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745614566096372 - DROP: Packet 9 at end of ingress (egress_spec == drop_port) +1745614566096441 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745614566097572 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745614566097586 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745614566100713 - DROP: Packet 10 at end of ingress (egress_spec == drop_port) +1745614566101849 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745614566102816 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745614566104000 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745614566127245 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745614566130300 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745614566130356 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745614566131455 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745614566133608 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745614566135761 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745614566166614 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745614566166765 - DROP: Packet 11 at end of ingress (egress_spec == drop_port) +1745614566167953 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745614566220710 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745614566228037 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745614566256238 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745614566284215 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745614566286428 - DROP: Packet 12 at end of ingress (egress_spec == drop_port) +1745614566295233 - DROP: Packet 13 at end of ingress (egress_spec == drop_port) +1745614566295239 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745614566296526 - DROP: Packet 14 at end of ingress (egress_spec == drop_port) +1745614566296584 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745614566320391 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745614566348485 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745614566349732 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745614566351818 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745614566352910 - DROP: Packet 15 at end of ingress (egress_spec == drop_port) +1745614566354716 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745614566354932 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745614566363032 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745614566383248 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745614566383317 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745614566384307 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745614566384356 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745614566384456 - DROP: Packet 16 at end of ingress (egress_spec == drop_port) +1745614566385467 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745614566385509 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745614566386709 - DROP: Packet 17 at end of ingress (egress_spec == drop_port) +1745614566388207 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745614566388953 - DROP: Packet 18 at end of ingress (egress_spec == drop_port) +1745614566389038 - DROP: Packet 19 at end of ingress (egress_spec == drop_port) +1745614566389090 - DROP: Packet 20 at end of ingress (egress_spec == drop_port) +1745614566389138 - DROP: Packet 21 at end of ingress (egress_spec == drop_port) +1745614566389675 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745614566416662 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745614566417794 - DROP: Packet 22 at end of ingress (egress_spec == drop_port) +1745614566420794 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745614566422888 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745614566439376 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745614566440476 - DROP: Packet 23 at end of ingress (egress_spec == drop_port) +1745614566484667 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745614566484667 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745614566484667 - DROP: Packet 24 at end of ingress (egress_spec == drop_port) +1745614566485918 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745614566485939 - DROP: Packet 25 at end of ingress (egress_spec == drop_port) +1745614566487186 - DROP: Packet 26 at end of ingress (egress_spec == drop_port) +1745614566511262 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745614566511265 - DROP: Packet 27 at end of ingress (egress_spec == drop_port) +1745614566512317 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745614566526770 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745614566546759 - DROP: Packet 28 at end of ingress (egress_spec == drop_port) +1745614566546767 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745614566547952 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745614566549055 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745614566589070 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745614566589115 - DROP: Packet 29 at end of ingress (egress_spec == drop_port) +1745614566604231 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745614566605293 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745614566614429 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745614566639200 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745614566642129 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745614566653049 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745614566653203 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745614566667377 - DROP: Packet 30 at end of ingress (egress_spec == drop_port) +1745614566667433 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745614566673605 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745614566679806 - DROP: Packet 31 at end of ingress (egress_spec == drop_port) +1745614566679870 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745614566679948 - DROP: Packet 32 at end of ingress (egress_spec == drop_port) +1745614566680805 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745614566703249 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745614566704265 - DROP: Packet 33 at end of ingress (egress_spec == drop_port) +1745614566743368 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745614566744412 - DROP: Packet 34 at end of ingress (egress_spec == drop_port) +1745614566798000 - DROP: Packet 35 at end of ingress (egress_spec == drop_port) +1745614566798042 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745614566804213 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745614566805228 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745614566864386 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745614566867457 - DROP: Packet 36 at end of ingress (egress_spec == drop_port) +1745614566867528 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745614566909335 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745614566910304 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745614566924552 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745614566929642 - DROP: Packet 37 at end of ingress (egress_spec == drop_port) +1745614566930687 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745614566930696 - DROP: Packet 38 at end of ingress (egress_spec == drop_port) +1745614566931824 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745614566972962 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745614566973067 - DROP: Packet 39 at end of ingress (egress_spec == drop_port) +1745614566998255 - DROP: Packet 40 at end of ingress (egress_spec == drop_port) +1745614566998285 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745614567064099 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745614567087248 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745614567088302 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745614567088394 - DROP: Packet 41 at end of ingress (egress_spec == drop_port) +1745614567088439 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745614567101495 - DROP: Packet 42 at end of ingress (egress_spec == drop_port) +1745614567102570 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745614567123618 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745614567170149 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745614567180206 - DROP: Packet 43 at end of ingress (egress_spec == drop_port) +1745614567181209 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745614567182374 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745614567182380 - DROP: Packet 44 at end of ingress (egress_spec == drop_port) +1745614567230915 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745614567279243 - DROP: Packet 45 at end of ingress (egress_spec == drop_port) +1745614567279244 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745614567380498 - DROP: Packet 46 at end of ingress (egress_spec == drop_port) +1745614567380528 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745614567382717 - DROP: Packet 47 at end of ingress (egress_spec == drop_port) +1745614567382725 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745614567484320 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745614567485321 - DROP: Packet 48 at end of ingress (egress_spec == drop_port) +1745614567485419 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745614567486530 - DROP: Packet 49 at end of ingress (egress_spec == drop_port) +1745614567666488 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745614567730691 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745614567730829 - DROP: Packet 50 at end of ingress (egress_spec == drop_port) +1745614567792848 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745614567793956 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745614568048409 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745614568048450 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745614568111731 - DROP: Packet 51 at end of ingress (egress_spec == drop_port) +1745614568112793 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745614568242495 - DROP: Packet 52 at end of ingress (egress_spec == drop_port) +1745614568242500 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745614568309063 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745614568369208 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745614568525949 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745614568590480 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745614568590555 - DROP: Packet 53 at end of ingress (egress_spec == drop_port) +1745614568624793 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745614568625966 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745614568625970 - DROP: Packet 54 at end of ingress (egress_spec == drop_port) +1745614568626112 - DROP: Packet 55 at end of ingress (egress_spec == drop_port) +1745614568653241 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745614568654294 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745614568909863 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745614568910987 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745614568974208 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745614568974217 - DROP: Packet 56 at end of ingress (egress_spec == drop_port) +1745614569103262 - DROP: Packet 57 at end of ingress (egress_spec == drop_port) +1745614569104390 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745614569169070 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745614569230413 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745614569486025 - DROP: Packet 58 at end of ingress (egress_spec == drop_port) +1745614569486045 - DROP: Packet 80 at end of ingress (egress_spec == drop_port) +1745614569487131 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745614569487240 - DROP: Packet 59 at end of ingress (egress_spec == drop_port) +1745614569519183 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745614569520320 - DROP: Packet 81 at end of ingress (egress_spec == drop_port) +1745614569648311 - DROP: Packet 82 at end of ingress (egress_spec == drop_port) +1745614569776319 - DROP: Packet 83 at end of ingress (egress_spec == drop_port) +1745614569910456 - DROP: Packet 84 at end of ingress (egress_spec == drop_port) +1745614569973554 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745614569974795 - DROP: Packet 60 at end of ingress (egress_spec == drop_port) +1745614570037875 - DROP: Packet 85 at end of ingress (egress_spec == drop_port) +1745614570038758 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745614570159216 - DROP: Packet 61 at end of ingress (egress_spec == drop_port) +1745614570159253 - DROP: Packet 86 at end of ingress (egress_spec == drop_port) +1745614570160139 - DROP: Packet 62 at end of ingress (egress_spec == drop_port) +1745614570160148 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745614570160473 - DROP: Packet 87 at end of ingress (egress_spec == drop_port) +1745614570161253 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745614570223068 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745614570223195 - DROP: Packet 63 at end of ingress (egress_spec == drop_port) +1745614570293102 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745614570294322 - DROP: Packet 88 at end of ingress (egress_spec == drop_port) +1745614570356456 - DROP: Packet 64 at end of ingress (egress_spec == drop_port) +1745614570357526 - DROP: Packet 89 at end of ingress (egress_spec == drop_port) +1745614570415189 - DROP: Packet 65 at end of ingress (egress_spec == drop_port) +1745614570415192 - DROP: Packet 90 at end of ingress (egress_spec == drop_port) +1745614570486756 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745614570487888 - DROP: Packet 66 at end of ingress (egress_spec == drop_port) +1745614570553002 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745614570613317 - DROP: Packet 91 at end of ingress (egress_spec == drop_port) +1745614570671158 - DROP: Packet 67 at end of ingress (egress_spec == drop_port) +1745614570672122 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745614570674294 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745614570870646 - DROP: Packet 68 at end of ingress (egress_spec == drop_port) +1745614570870750 - DROP: Packet 92 at end of ingress (egress_spec == drop_port) +1745614570871645 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745614570872912 - DROP: Packet 69 at end of ingress (egress_spec == drop_port) +1745614572526293 - DROP: Packet 93 at end of ingress (egress_spec == drop_port) +1745614572590644 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745614572590806 - DROP: Packet 70 at end of ingress (egress_spec == drop_port) +1745614572653488 - DROP: Packet 94 at end of ingress (egress_spec == drop_port) +1745614572654443 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745614572910137 - DROP: Packet 95 at end of ingress (egress_spec == drop_port) +1745614572911048 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745614572973392 - DROP: Packet 71 at end of ingress (egress_spec == drop_port) +1745614572973406 - DROP: Packet 96 at end of ingress (egress_spec == drop_port) +1745614573103547 - DROP: Packet 72 at end of ingress (egress_spec == drop_port) +1745614573104596 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745614573170185 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745614573231778 - DROP: Packet 97 at end of ingress (egress_spec == drop_port) +1745614573324289 - ENQUEUE: Packet 102 to port 3 with priority 0 (queue 0), queue depth before: 0 +1745614573485632 - DROP: Packet 73 at end of ingress (egress_spec == drop_port) +1745614573485720 - DROP: Packet 98 at end of ingress (egress_spec == drop_port) +1745614573487895 - DROP: Packet 74 at end of ingress (egress_spec == drop_port) +1745614573488117 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745614577327794 - DROP: Packet 99 at end of ingress (egress_spec == drop_port) +1745614577328242 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745614577328917 - DROP: Packet 100 at end of ingress (egress_spec == drop_port) +1745614577840172 - DROP: Packet 75 at end of ingress (egress_spec == drop_port) +1745614577840258 - DROP: Packet 105 at end of ingress (egress_spec == drop_port) +1745614578351204 - DROP: Packet 76 at end of ingress (egress_spec == drop_port) +1745614578351214 - DROP: Packet 101 at end of ingress (egress_spec == drop_port) +1745614578352313 - DROP: Packet 77 at end of ingress (egress_spec == drop_port) +1745614578353359 - DROP: Packet 106 at end of ingress (egress_spec == drop_port) +1745614578353414 - DROP: Packet 102 at end of ingress (egress_spec == drop_port) +1745614578355607 - DROP: Packet 103 at end of ingress (egress_spec == drop_port) +1745614578357799 - DROP: Packet 104 at end of ingress (egress_spec == drop_port) +1745614578864169 - DROP: Packet 107 at end of ingress (egress_spec == drop_port) +1745614578865241 - DROP: Packet 78 at end of ingress (egress_spec == drop_port) +1745614579376181 - DROP: Packet 79 at end of ingress (egress_spec == drop_port) +1745614579377138 - DROP: Packet 108 at end of ingress (egress_spec == drop_port) +1745614579889144 - DROP: Packet 109 at end of ingress (egress_spec == drop_port) diff --git a/utils/Makefile b/utils/Makefile index 44fe8ea9..d8f5830a 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -41,7 +41,7 @@ stop: build: dirs $(compiled_json) %.json: %.p4 - $(P4C) --p4v 16 $(P4C_ARGS) -o $(BUILD_DIR)/$@ $< + $(P4C) --p4v 16 $(P4C_ARGS) -o $(BUILD_DIR)/$@ $< --emit-externs dirs: mkdir -p $(BUILD_DIR) $(PCAP_DIR) $(LOG_DIR) diff --git a/utils/p4runtime_lib/bmv2.py b/utils/p4runtime_lib/bmv2.py index 67254f65..be2dd6cc 100644 --- a/utils/p4runtime_lib/bmv2.py +++ b/utils/p4runtime_lib/bmv2.py @@ -13,14 +13,25 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from p4.tmp import p4config_pb2 +# Instead of using the protocol buffer class, we'll use a simple class that provides the same interface +class SimpleP4DeviceConfig(object): + def __init__(self): + self.reassign = False + self.device_data = b'' + + def SerializeToString(self): + """ + Emulates the Protocol Buffer's SerializeToString method. + Just returns the device_data as binary string. + """ + return self.device_data from .switch import SwitchConnection def buildDeviceConfig(bmv2_json_file_path=None): "Builds the device config for BMv2" - device_config = p4config_pb2.P4DeviceConfig() + device_config = SimpleP4DeviceConfig() device_config.reassign = True with open(bmv2_json_file_path) as f: device_config.device_data = f.read().encode('utf-8') diff --git a/utils/p4runtime_lib/custom_pb/__init__.py b/utils/p4runtime_lib/custom_pb/__init__.py new file mode 100644 index 00000000..fbe20234 --- /dev/null +++ b/utils/p4runtime_lib/custom_pb/__init__.py @@ -0,0 +1 @@ +# Empty __init__.py file to make this directory a proper Python package \ No newline at end of file diff --git a/utils/p4runtime_lib/custom_pb/p4config_pb2.py b/utils/p4runtime_lib/custom_pb/p4config_pb2.py new file mode 100644 index 00000000..e6819a2d --- /dev/null +++ b/utils/p4runtime_lib/custom_pb/p4config_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Custom implementation to provide missing P4DeviceConfig class + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database + +_sym_db = _symbol_database.Default() + +class P4DeviceConfig(_message.Message): + """Custom implementation of P4DeviceConfig message""" + + DESCRIPTOR = _descriptor.Descriptor( + name='P4DeviceConfig', + full_name='p4.tmp.P4DeviceConfig', + filename=None, + containing_type=None, + fields=[], + extensions=[], + nested_types=[], + enum_types=[], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[], + serialized_start=31, + serialized_end=48, + ) + + def __init__(self, **kwargs): + super(P4DeviceConfig, self).__init__(**kwargs) + self.reassign = False + self.device_data = b'' \ No newline at end of file diff --git a/utils/p4runtime_switch.py b/utils/p4runtime_switch.py index 18ec0ecb..52754677 100644 --- a/utils/p4runtime_switch.py +++ b/utils/p4runtime_switch.py @@ -129,8 +129,16 @@ def start(self, controllers): args.append("-- --grpc-server-addr 0.0.0.0:" + str(self.grpc_port)) if self.cpu_port: args.append("--cpu-port " + str(self.cpu_port)) + + # env_vars = "LD_PRELOAD=/home/nwlab/p4/tutorials/utils/user_externs_pifo/pifo.so " + # env_vars = "LD_PRELOAD=/home/pralhad/tutorials/utils/user_externs_pifo1/pifo.so " + # env_vars = "LD_PRELOAD=/home/pralhad/tutorials/utils/user_externs_sp_pifo/sp_pifo.so " + # env_vars = "LD_PRELOAD=/home/pralhad/tutorials/utils/user_externs_pieo/pieo.so " + # env_vars = "LD_PRELOAD=/home/pralhad/tutorials/utils/user_externs_pFabric/pFabric.so " cmd = ' '.join(args) + # print("Command to start the switch: \n", cmd) info(cmd + "\n") + # info(cmd + "\n") print(cmd + "\n") diff --git a/utils/run_exercise.py b/utils/run_exercise.py index a2169fe9..7342f38e 100755 --- a/utils/run_exercise.py +++ b/utils/run_exercise.py @@ -33,6 +33,8 @@ from mininet.topo import Topo from p4_mininet import P4Host, P4Switch from p4runtime_switch import P4RuntimeSwitch +from run_sim import sending_function +# from run_sim_ex import sending_function def configureP4Switch(**switch_args): @@ -363,6 +365,10 @@ def do_net_cli(self): print(' for example run: cat %s/s1-p4runtime-requests.txt' % self.log_dir) print('') + # calling the function to generate the iperf traffic. + sending_function(self) + + CLI(self.net) diff --git a/utils/run_sim.py b/utils/run_sim.py new file mode 100644 index 00000000..18a07aa9 --- /dev/null +++ b/utils/run_sim.py @@ -0,0 +1,248 @@ +from time import sleep +import os + +def sending_function(self): + # First, ensure the outputs directory exists + os.makedirs('./outputs', exist_ok=True) + + # Get all hosts + h11,h12,h13,h14,h15,h16,h17,h18,h19,h110,h111,h112,h113,h114,h115,h116,h21,h22,h23,h24,h25,h26,h27,h28,h29,h210,h211,h212,h213,h214,h215,h216,h31,h32,h33,h34,h35,h36,h37,h38,h39,h310,h311,h312,h313,h314,h315,h316,h41,h42,h43,h44,h45,h46,h47,h48,h49,h410,h411,h412,h413,h414,h415,h416,h51,h52,h53,h54,h55,h56,h57,h58,h59,h510,h511,h512,h513,h514,h515,h516,h61,h62,h63,h64,h65,h66,h67,h68,h69,h610,h611,h612,h613,h614,h615,h616,h71,h72,h73,h74,h75,h76,h77,h78,h79,h710,h711,h712,h713,h714,h715,h716,h81,h82,h83,h84,h85,h86,h87,h88,h89,h810,h811,h812,h813,h814,h815,h816,h91,h92,h93,h94,h95,h96,h97,h98,h99,h910,h911,h912,h913,h914,h915,h916, = self.net.get('h11','h12','h13','h14','h15','h16','h17','h18','h19','h110','h111','h112','h113','h114','h115','h116','h21','h22','h23','h24','h25','h26','h27','h28','h29','h210','h211','h212','h213','h214','h215','h216','h31','h32','h33','h34','h35','h36','h37','h38','h39','h310','h311','h312','h313','h314','h315','h316','h41','h42','h43','h44','h45','h46','h47','h48','h49','h410','h411','h412','h413','h414','h415','h416','h51','h52','h53','h54','h55','h56','h57','h58','h59','h510','h511','h512','h513','h514','h515','h516','h61','h62','h63','h64','h65','h66','h67','h68','h69','h610','h611','h612','h613','h614','h615','h616','h71','h72','h73','h74','h75','h76','h77','h78','h79','h710','h711','h712','h713','h714','h715','h716','h81','h82','h83','h84','h85','h86','h87','h88','h89','h810','h811','h812','h813','h814','h815','h816','h91','h92','h93','h94','h95','h96','h97','h98','h99','h910','h911','h912','h913','h914','h915','h916',) + + # Create outputs directory in each host + for host in [h59, h510, h511, h512, h513, h514, h515, h516, + h61, h62, h63, h64, h65, h66, h67, h68, h69, h610, h611, h612, h613, h614, h615, h616, + h71, h72, h73, h74, h75, h76, h77, h78, h79, h710, h711, h712, h713, h714, h715, h716, + h81, h82, h83, h84, h85, h86, h87, h88, h89, h810, h811, h812, h813, h814, h815, h816, + h91, h92, h93, h94, h95, h96, h97, h98, h99, h910, h911, h912, h913, h914, h915, h916]: + host.cmd('mkdir -p ./outputs') + + # Start receivers + h59.cmd('iperf -s > ./outputs/receiver_h59.txt &') + h510.cmd('iperf -s > ./outputs/receiver_h510.txt &') + h511.cmd('iperf -s > ./outputs/receiver_h511.txt &') + h512.cmd('iperf -s > ./outputs/receiver_h512.txt &') + h513.cmd('iperf -s > ./outputs/receiver_h513.txt &') + h514.cmd('iperf -s > ./outputs/receiver_h514.txt &') + h515.cmd('iperf -s > ./outputs/receiver_h515.txt &') + h516.cmd('iperf -s > ./outputs/receiver_h516.txt &') + h61.cmd('iperf -s > ./outputs/receiver_h61.txt &') + h62.cmd('iperf -s > ./outputs/receiver_h62.txt &') + h63.cmd('iperf -s > ./outputs/receiver_h63.txt &') + h64.cmd('iperf -s > ./outputs/receiver_h64.txt &') + h65.cmd('iperf -s > ./outputs/receiver_h65.txt &') + h66.cmd('iperf -s > ./outputs/receiver_h66.txt &') + h67.cmd('iperf -s > ./outputs/receiver_h67.txt &') + h68.cmd('iperf -s > ./outputs/receiver_h68.txt &') + h69.cmd('iperf -s > ./outputs/receiver_h69.txt &') + h610.cmd('iperf -s > ./outputs/receiver_h610.txt &') + h611.cmd('iperf -s > ./outputs/receiver_h611.txt &') + h612.cmd('iperf -s > ./outputs/receiver_h612.txt &') + h613.cmd('iperf -s > ./outputs/receiver_h613.txt &') + h614.cmd('iperf -s > ./outputs/receiver_h614.txt &') + h615.cmd('iperf -s > ./outputs/receiver_h615.txt &') + h616.cmd('iperf -s > ./outputs/receiver_h616.txt &') + h71.cmd('iperf -s > ./outputs/receiver_h71.txt &') + h72.cmd('iperf -s > ./outputs/receiver_h72.txt &') + h73.cmd('iperf -s > ./outputs/receiver_h73.txt &') + h74.cmd('iperf -s > ./outputs/receiver_h74.txt &') + h75.cmd('iperf -s > ./outputs/receiver_h75.txt &') + h76.cmd('iperf -s > ./outputs/receiver_h76.txt &') + h77.cmd('iperf -s > ./outputs/receiver_h77.txt &') + h78.cmd('iperf -s > ./outputs/receiver_h78.txt &') + h79.cmd('iperf -s > ./outputs/receiver_h79.txt &') + h710.cmd('iperf -s > ./outputs/receiver_h710.txt &') + h711.cmd('iperf -s > ./outputs/receiver_h711.txt &') + h712.cmd('iperf -s > ./outputs/receiver_h712.txt &') + h713.cmd('iperf -s > ./outputs/receiver_h713.txt &') + h714.cmd('iperf -s > ./outputs/receiver_h714.txt &') + h715.cmd('iperf -s > ./outputs/receiver_h715.txt &') + h716.cmd('iperf -s > ./outputs/receiver_h716.txt &') + h81.cmd('iperf -s > ./outputs/receiver_h81.txt &') + h82.cmd('iperf -s > ./outputs/receiver_h82.txt &') + h83.cmd('iperf -s > ./outputs/receiver_h83.txt &') + h84.cmd('iperf -s > ./outputs/receiver_h84.txt &') + h85.cmd('iperf -s > ./outputs/receiver_h85.txt &') + h86.cmd('iperf -s > ./outputs/receiver_h86.txt &') + h87.cmd('iperf -s > ./outputs/receiver_h87.txt &') + h88.cmd('iperf -s > ./outputs/receiver_h88.txt &') + h89.cmd('iperf -s > ./outputs/receiver_h89.txt &') + h810.cmd('iperf -s > ./outputs/receiver_h810.txt &') + h811.cmd('iperf -s > ./outputs/receiver_h811.txt &') + h812.cmd('iperf -s > ./outputs/receiver_h812.txt &') + h813.cmd('iperf -s > ./outputs/receiver_h813.txt &') + h814.cmd('iperf -s > ./outputs/receiver_h814.txt &') + h815.cmd('iperf -s > ./outputs/receiver_h815.txt &') + h816.cmd('iperf -s > ./outputs/receiver_h816.txt &') + h91.cmd('iperf -s > ./outputs/receiver_h91.txt &') + h92.cmd('iperf -s > ./outputs/receiver_h92.txt &') + h93.cmd('iperf -s > ./outputs/receiver_h93.txt &') + h94.cmd('iperf -s > ./outputs/receiver_h94.txt &') + h95.cmd('iperf -s > ./outputs/receiver_h95.txt &') + h96.cmd('iperf -s > ./outputs/receiver_h96.txt &') + h97.cmd('iperf -s > ./outputs/receiver_h97.txt &') + h98.cmd('iperf -s > ./outputs/receiver_h98.txt &') + h99.cmd('iperf -s > ./outputs/receiver_h99.txt &') + h910.cmd('iperf -s > ./outputs/receiver_h910.txt &') + h911.cmd('iperf -s > ./outputs/receiver_h911.txt &') + h912.cmd('iperf -s > ./outputs/receiver_h912.txt &') + h913.cmd('iperf -s > ./outputs/receiver_h913.txt &') + h914.cmd('iperf -s > ./outputs/receiver_h914.txt &') + h915.cmd('iperf -s > ./outputs/receiver_h915.txt &') + h916.cmd('iperf -s > ./outputs/receiver_h916.txt &') + + # print("all the hosts are ready to receive packets") + # print("Starting sending packets...\n") + + sleep(2) + h11.cmd('iperf -c 10.0.9.31 -n 6667000 -M 1500 > ./outputs/sender_h11.txt &') + sleep(0.001) + h12.cmd('iperf -c 10.0.5.31 -n 133000 -M 1500 > ./outputs/sender_h12.txt &') + sleep(0.001) + h13.cmd('iperf -c 10.0.8.31 -n 6000 -M 1500 > ./outputs/sender_h13.txt &') + sleep(0.001) + h14.cmd('iperf -c 10.0.6.31 -n 133000 -M 1500 > ./outputs/sender_h14.txt &') + sleep(0.001) + h15.cmd('iperf -c 10.0.9.29 -n 3333000 -M 1500 > ./outputs/sender_h15.txt &') + sleep(0.001) + h16.cmd('iperf -c 10.0.5.29 -n 6667000 -M 1500 > ./outputs/sender_h16.txt &') + sleep(0.001) + h17.cmd('iperf -c 10.0.9.27 -n 133000 -M 1500 > ./outputs/sender_h17.txt &') + sleep(0.001) + h18.cmd('iperf -c 10.0.9.25 -n 13000 -M 1500 > ./outputs/sender_h18.txt &') + sleep(0.001) + h19.cmd('iperf -c 10.0.7.31 -n 3333000 -M 1500 > ./outputs/sender_h19.txt &') + sleep(0.001) + h110.cmd('iperf -c 10.0.8.29 -n 6667000 -M 1500 > ./outputs/sender_h110.txt &') + sleep(0.001) + h111.cmd('iperf -c 10.0.8.27 -n 6000 -M 1500 > ./outputs/sender_h111.txt &') + sleep(0.001) + h112.cmd('iperf -c 10.0.9.23 -n 667000 -M 1500 > ./outputs/sender_h112.txt &') + sleep(0.001) + h113.cmd('iperf -c 10.0.8.25 -n 1333000 -M 1500 > ./outputs/sender_h113.txt &') + sleep(0.001) + h114.cmd('iperf -c 10.0.8.23 -n 133000 -M 1500 > ./outputs/sender_h114.txt &') + sleep(0.001) + h115.cmd('iperf -c 10.0.8.21 -n 13000 -M 1500 > ./outputs/sender_h115.txt &') + sleep(0.001) + h116.cmd('iperf -c 10.0.8.19 -n 667000 -M 1500 > ./outputs/sender_h116.txt &') + sleep(0.001) + h21.cmd('iperf -c 10.0.6.29 -n 6000 -M 1500 > ./outputs/sender_h21.txt &') + sleep(0.001) + h22.cmd('iperf -c 10.0.5.27 -n 6000 -M 1500 > ./outputs/sender_h22.txt &') + sleep(0.001) + h23.cmd('iperf -c 10.0.8.17 -n 6000 -M 1500 > ./outputs/sender_h23.txt &') + sleep(0.001) + h24.cmd('iperf -c 10.0.9.21 -n 6000 -M 1500 > ./outputs/sender_h24.txt &') + sleep(0.001) + h25.cmd('iperf -c 10.0.7.29 -n 6667000 -M 1500 > ./outputs/sender_h25.txt &') + sleep(0.001) + h26.cmd('iperf -c 10.0.8.15 -n 133000 -M 1500 > ./outputs/sender_h26.txt &') + sleep(0.001) + h27.cmd('iperf -c 10.0.5.25 -n 1333000 -M 1500 > ./outputs/sender_h27.txt &') + sleep(0.001) + h28.cmd('iperf -c 10.0.7.27 -n 133000 -M 1500 > ./outputs/sender_h28.txt &') + sleep(0.001) + h29.cmd('iperf -c 10.0.8.13 -n 6000 -M 1500 > ./outputs/sender_h29.txt &') + sleep(0.001) + h210.cmd('iperf -c 10.0.6.27 -n 1333000 -M 1500 > ./outputs/sender_h210.txt &') + sleep(0.001) + h211.cmd('iperf -c 10.0.8.11 -n 53000 -M 1500 > ./outputs/sender_h211.txt &') + sleep(0.001) + h212.cmd('iperf -c 10.0.5.23 -n 6000 -M 1500 > ./outputs/sender_h212.txt &') + sleep(0.001) + h213.cmd('iperf -c 10.0.9.19 -n 13000 -M 1500 > ./outputs/sender_h213.txt &') + sleep(0.001) + h214.cmd('iperf -c 10.0.7.25 -n 133000 -M 1500 > ./outputs/sender_h214.txt &') + sleep(0.001) + h215.cmd('iperf -c 10.0.8.9 -n 19000 -M 1500 > ./outputs/sender_h215.txt &') + sleep(0.001) + h216.cmd('iperf -c 10.0.7.23 -n 20000000 -M 1500 > ./outputs/sender_h216.txt &') + sleep(0.001) + h31.cmd('iperf -c 10.0.9.17 -n 133000 -M 1500 > ./outputs/sender_h31.txt &') + sleep(0.001) + h32.cmd('iperf -c 10.0.7.21 -n 3333000 -M 1500 > ./outputs/sender_h32.txt &') + sleep(0.001) + h33.cmd('iperf -c 10.0.5.21 -n 20000000 -M 1500 > ./outputs/sender_h33.txt &') + sleep(0.001) + h34.cmd('iperf -c 10.0.9.15 -n 667000 -M 1500 > ./outputs/sender_h34.txt &') + sleep(0.001) + h35.cmd('iperf -c 10.0.9.13 -n 53000 -M 1500 > ./outputs/sender_h35.txt &') + sleep(0.001) + h36.cmd('iperf -c 10.0.9.11 -n 667000 -M 1500 > ./outputs/sender_h36.txt &') + sleep(0.001) + h37.cmd('iperf -c 10.0.5.19 -n 133000 -M 1500 > ./outputs/sender_h37.txt &') + sleep(0.001) + h38.cmd('iperf -c 10.0.8.7 -n 6667000 -M 1500 > ./outputs/sender_h38.txt &') + sleep(0.001) + h39.cmd('iperf -c 10.0.6.25 -n 19000 -M 1500 > ./outputs/sender_h39.txt &') + sleep(0.001) + h310.cmd('iperf -c 10.0.7.19 -n 133000 -M 1500 > ./outputs/sender_h310.txt &') + sleep(0.001) + h311.cmd('iperf -c 10.0.9.9 -n 19000 -M 1500 > ./outputs/sender_h311.txt &') + sleep(0.001) + h312.cmd('iperf -c 10.0.8.5 -n 53000 -M 1500 > ./outputs/sender_h312.txt &') + sleep(0.001) + h313.cmd('iperf -c 10.0.6.23 -n 53000 -M 1500 > ./outputs/sender_h313.txt &') + sleep(0.001) + h314.cmd('iperf -c 10.0.5.17 -n 133000 -M 1500 > ./outputs/sender_h314.txt &') + sleep(0.001) + h315.cmd('iperf -c 10.0.8.3 -n 19000 -M 1500 > ./outputs/sender_h315.txt &') + sleep(0.001) + h316.cmd('iperf -c 10.0.6.21 -n 1333000 -M 1500 > ./outputs/sender_h316.txt &') + sleep(0.001) + h41.cmd('iperf -c 10.0.6.19 -n 19000 -M 1500 > ./outputs/sender_h41.txt &') + sleep(0.001) + h42.cmd('iperf -c 10.0.9.7 -n 6000 -M 1500 > ./outputs/sender_h42.txt &') + sleep(0.001) + h43.cmd('iperf -c 10.0.6.17 -n 667000 -M 1500 > ./outputs/sender_h43.txt &') + sleep(0.001) + h44.cmd('iperf -c 10.0.8.1 -n 1333000 -M 1500 > ./outputs/sender_h44.txt &') + sleep(0.001) + h45.cmd('iperf -c 10.0.7.17 -n 19000 -M 1500 > ./outputs/sender_h45.txt &') + sleep(0.001) + h46.cmd('iperf -c 10.0.9.5 -n 3333000 -M 1500 > ./outputs/sender_h46.txt &') + sleep(0.001) + h47.cmd('iperf -c 10.0.7.15 -n 53000 -M 1500 > ./outputs/sender_h47.txt &') + sleep(0.001) + h48.cmd('iperf -c 10.0.7.13 -n 667000 -M 1500 > ./outputs/sender_h48.txt &') + sleep(0.001) + h49.cmd('iperf -c 10.0.6.15 -n 133000 -M 1500 > ./outputs/sender_h49.txt &') + sleep(0.001) + h410.cmd('iperf -c 10.0.9.3 -n 53000 -M 1500 > ./outputs/sender_h410.txt &') + sleep(0.001) + h411.cmd('iperf -c 10.0.6.13 -n 13000 -M 1500 > ./outputs/sender_h411.txt &') + sleep(0.001) + h412.cmd('iperf -c 10.0.9.1 -n 19000 -M 1500 > ./outputs/sender_h412.txt &') + sleep(0.001) + h413.cmd('iperf -c 10.0.6.11 -n 133000 -M 1500 > ./outputs/sender_h413.txt &') + sleep(0.001) + h414.cmd('iperf -c 10.0.7.11 -n 3333000 -M 1500 > ./outputs/sender_h414.txt &') + sleep(0.001) + h415.cmd('iperf -c 10.0.7.9 -n 133000 -M 1500 > ./outputs/sender_h415.txt &') + sleep(0.001) + h416.cmd('iperf -c 10.0.7.7 -n 667000 -M 1500 > ./outputs/sender_h416.txt &') + sleep(0.001) + h51.cmd('iperf -c 10.0.6.9 -n 1333000 -M 1500 > ./outputs/sender_h51.txt &') + sleep(0.001) + h52.cmd('iperf -c 10.0.6.7 -n 6000 -M 1500 > ./outputs/sender_h52.txt &') + sleep(0.001) + h53.cmd('iperf -c 10.0.7.5 -n 6000 -M 1500 > ./outputs/sender_h53.txt &') + sleep(0.001) + h54.cmd('iperf -c 10.0.6.5 -n 53000 -M 1500 > ./outputs/sender_h54.txt &') + sleep(0.001) + h55.cmd('iperf -c 10.0.6.3 -n 1333000 -M 1500 > ./outputs/sender_h55.txt &') + sleep(0.001) + h56.cmd('iperf -c 10.0.6.1 -n 3333000 -M 1500 > ./outputs/sender_h56.txt &') + sleep(0.001) + h57.cmd('iperf -c 10.0.7.3 -n 133000 -M 1500 > ./outputs/sender_h57.txt &') + sleep(0.001) + h58.cmd('iperf -c 10.0.7.1 -n 3333000 -M 1500 > ./outputs/sender_h58.txt &') + sleep(0.001) + +# def run_sim(net): +# """ +# Wrapper function to make it easier to call from run_exercise.py +# """ +# sim = type('', (), {})() # Create a simple object +# sim.net = net +# return sending_function(sim) diff --git a/utils/run_sim_ex.py b/utils/run_sim_ex.py new file mode 100644 index 00000000..1ea6f0ae --- /dev/null +++ b/utils/run_sim_ex.py @@ -0,0 +1,90 @@ +from time import sleep +import os + +def sending_function(self): + # First, ensure the outputs directory exists + output_dir = './outputs' + os.makedirs(output_dir, exist_ok=True) + print(f"Ensured output directory exists: {output_dir}") + + # Get hosts + h1,h2,h3,h4,h5,h6,h7,h8 = self.net.get('h1','h2', 'h3', 'h4', 'h5', 'h6', 'h7', 'h8') + hosts = [h1, h2, h3, h4, h5, h6, h7, h8] + print(f"Got hosts: {[h.name for h in hosts]}") + + # Define server-client pairs and parameters + flows = [ + {'sender': h1, 'receiver': h5, 'duration': 25, 'priority': 8, 'delay': 0}, + {'sender': h2, 'receiver': h6, 'duration': 20, 'priority': 4, 'delay': 5}, + {'sender': h3, 'receiver': h7, 'duration': 15, 'priority': 2, 'delay': 5}, + {'sender': h4, 'receiver': h8, 'duration': 5, 'priority': 0, 'delay': 5}, + ] + + # Define log file paths + server_logs = {} + client_logs = {} + for flow in flows: + rec_name = flow['receiver'].name + send_name = flow['sender'].name + server_logs[rec_name] = os.path.join(output_dir, f"{rec_name}_server.json") + client_logs[send_name] = os.path.join(output_dir, f"{send_name}_client.json") + + # Start receivers (servers) + print("\nStarting iperf3 servers...") + for flow in flows: + receiver = flow['receiver'] + log_path = server_logs[receiver.name] + cmd = f'iperf3 -s --json -i 1 > {log_path} &' + print(f" {receiver.name}: {cmd}") + receiver.cmd(cmd) + + print("Servers starting in background. Waiting 5s...") + sleep(5) + + # Start senders (clients) with delays + print("\nStarting iperf3 clients sequentially...") + current_wait = 0 + total_elapsed_time = 0 + flow_start_times = {} + + for i, flow in enumerate(flows): + sender = flow['sender'] + receiver = flow['receiver'] + duration = flow['duration'] + priority = flow['priority'] + delay = flow['delay'] + client_log_path = client_logs[sender.name] + + if i > 0: + print(f"Waiting {delay}s before starting next flow...") + sleep(delay) + total_elapsed_time += delay + + flow_start_times[sender.name] = total_elapsed_time + print(f"Starting flow {i+1} ({sender.name}->{receiver.name}) at T={total_elapsed_time}s") + cmd = (f'iperf3 -c {receiver.IP()} -u -b 10M -t {duration} ' + f'-S {priority} --json > {client_log_path} &') + print(f" {sender.name}: {cmd}") + sender.cmd(cmd) + + max_end_time = 0 + for flow in flows: + start_time = flow_start_times[flow['sender'].name] + end_time = start_time + flow['duration'] + max_end_time = max(max_end_time, end_time) + print(f" Flow {flow['sender'].name}->{flow['receiver'].name}: Starts {start_time}s, Duration {flow['duration']}s, Ends {end_time}s") + + remaining_wait = max(0, max_end_time - total_elapsed_time) + 15 + + print(f"\nAll flows started. Max end time is {max_end_time}s.") + print(f"Current elapsed time: {total_elapsed_time}s.") + print(f"Waiting an additional {remaining_wait}s for all flows to complete...") + sleep(remaining_wait) + + print("\niperf tests should be complete.") + + print("Cleaning up iperf3 server processes...") + # for flow in flows: + # flow['receiver'].cmd('killall -q iperf3') + + print("\nScript finished.") diff --git a/utils/user_externs_pifo/Makefile b/utils/user_externs_pifo/Makefile new file mode 100644 index 00000000..a0428e0b --- /dev/null +++ b/utils/user_externs_pifo/Makefile @@ -0,0 +1,14 @@ +CXX=g++ +CXXSTD=-std=c++11 +CXXFLAGS=$(CXXSTD) -Wall -Wextra -pedantic -g -fPIC +LDFLAGS=-shared + +all: pifo.so + +pifo.so: + $(CXX) $(CXXFLAGS) $(LDFLAGS) pifo.cpp -o $@ + +clean: + rm -rf pifo.so + rm -rf pifo.o + rm -rf pifo.lo diff --git a/utils/user_externs_pifo/pifo.cpp b/utils/user_externs_pifo/pifo.cpp new file mode 100644 index 00000000..bbdd97b6 --- /dev/null +++ b/utils/user_externs_pifo/pifo.cpp @@ -0,0 +1,46 @@ +#include "pifo.h" +#include +#include + +namespace bm { + +std::vector> pifo_scheduler::FS = { NULL}; + +std::vector> pifo_scheduler::FB = { NULL}; + +unsigned int pifo_scheduler::time_now = 0; +unsigned int pifo_scheduler::number_levels = 1; + +std::vector pifo_scheduler::number_of_queues_per_level = {1}; +std::vector pifo_scheduler::number_of_pkts_per_queue_each_level = {1000}; + +unsigned int sum_all_queues = pifo_scheduler::number_of_queues_per_level[0]; + +unsigned int number_of_update_ranks_all_level = (pifo_scheduler::number_of_pkts_per_queue_each_level[0]*pifo_scheduler::number_of_queues_per_level[0] * pifo_scheduler::number_levels); + +std::vector pifo_scheduler::new_ranks_each_level(number_of_update_ranks_all_level); + +unsigned int pifo_scheduler::pkt_ptr = 0; +unsigned int pifo_scheduler::shaping = 0; +unsigned int pifo_scheduler::number_of_enqueue_packets = 0; +std::vector pifo_scheduler::pkt_levels_ranks = {0}; +unsigned int pifo_scheduler::switch_is_ready = 1; +unsigned int pifo_scheduler::number_of_read_packets = 0; +unsigned int pifo_scheduler::number_of_dequeue_packets = 0; +std::queue pifo_scheduler::pkt_ptr_queue; + +int pifo_scheduler::start_time = 0; +int pifo_scheduler::last_time = 0; + +BM_REGISTER_EXTERN(pifo_scheduler) +BM_REGISTER_EXTERN_METHOD(pifo_scheduler, my_scheduler, const Data&, const Data&, const Data&, const Data&, const Data&, const Data&, const Data&, const Data&, const Data&); + +BM_REGISTER_EXTERN_METHOD(pifo_scheduler, pass_rank_values, const Data&, const Data&); + +BM_REGISTER_EXTERN_METHOD(pifo_scheduler, pass_updated_rank_values, const Data&, const Data&, const Data&); + +} // namespace bm + +int import_pifo(){ + return 0; +} diff --git a/utils/user_externs_pifo/pifo.h b/utils/user_externs_pifo/pifo.h new file mode 100644 index 00000000..84bd4bd6 --- /dev/null +++ b/utils/user_externs_pifo/pifo.h @@ -0,0 +1,787 @@ +//////////////////////////////////////////////////// todo list +//////////////////////////////////////////////////// 1) force dequeue and error correction are not unsigned short introduced properly yet. +//////////////////////////////////////////////////// 2) add the arrival time in each packet (I am using the pkt_ptr instead in the enqueue_FS now) + +#ifndef SIMPLE_SWITCH_PSA_DIV_H_ +#define SIMPLE_SWITCH_PSA_DIV_H_ +#include +#include +#define _STDC_WANT_LIB_EXT1_ 1 +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std::chrono; +#pragma once + +namespace bm { + +// if the rank = 0, that means this level is not used (pkts will be handled in a FIFO order in this level), the lowest rank in any level is "1". + +// this is the main class of the pifo scheduler that will be used later in any usage of the scheduler. +class pifo_scheduler : public bm::ExternType { + public: + BM_EXTERN_ATTRIBUTES { + BM_EXTERN_ATTRIBUTE_ADD(verbose); + } + + +void init() override { // Attributes + static constexpr std::uint32_t QUIET = 0u; + // Init variables + verbose_ = verbose.get() != QUIET;}; + +// the packet struct that presents any packet inside the scheduler. + struct packet { + unsigned int level3_flow_id; + unsigned int flow_id; + unsigned int rank; + unsigned int pred; + unsigned int pkt_ptr; + std::vector levels_ranks; + unsigned int arrival_time; + }; +// The flow scheduler struct : which is a queue that sorts 1 head packet from each flow. + struct flow_scheduler { + std::shared_ptr object; + std::shared_ptr next; + }; +// The Fifo bank struct : which consists of multiple FIFO queues, each one is dedicated to one flow, and stores all packets from this flow except the head packet. + struct fifo_bank { + unsigned int flow_id; + std::shared_ptr object; + std::shared_ptr bottom; + std::shared_ptr left; + }; + + static unsigned int time_now; // the current time, increment by 1 each time we call the scheduler for a dequeue (which is continous) + +// level 3 of the hierarchy variables + static std::vector number_of_queues_per_level; + static std::vector number_of_pkts_per_queue_each_level; + + + static std::vector> FS; + + static std::vector> FB; // the fifo bank queues, each flow scheduler has its own FIFO bank which stores the rest of packets of the flow handled in this flow scheduler. + + static std::vector new_ranks_each_level; +// level 2 of the hierarchy variables + +// level 1 of the hierarchy variables (root) + + // Added debug logging flag + static bool debug_logging; + + std::shared_ptr deq_packet_ptr = NULL; // the pointer to the dequeued packet + static unsigned int number_of_enqueue_packets; // the total number of enqueued packets until now. + + static unsigned int number_of_read_packets; // the total number of captured packets by the TM_buffer.h until now. + + static unsigned int number_of_dequeue_packets; // the total number of dequeued packets until now. + + static unsigned int switch_is_ready; + + static unsigned int number_levels; + +// these variables will contain the inputs that will be inserted by the user, to be used later. + unsigned int flow_id; + //std::vector pkt_levels_ranks = std::vector(number_levels); + static std::vector pkt_levels_ranks; + + std::vector enq_flow_id_each_level = std::vector(number_levels); + + unsigned int pred; + unsigned int arrival_time; + static unsigned int shaping; //new static + unsigned int enq; + static unsigned int pkt_ptr; //new static + unsigned int deq; + static std::queue pkt_ptr_queue; + + static int start_time; + static int last_time; + + // Add new helper methods to fix synchronization issues + static void update_read_packets(); + static void ensure_packet_dequeue(); + + void pass_rank_values(const Data& rank_value, const Data& level_id) + { + pkt_levels_ranks.erase(pkt_levels_ranks.begin() + level_id.get()); + pkt_levels_ranks.insert(pkt_levels_ranks.begin() + level_id.get(), rank_value.get()); + } + void pass_updated_rank_values(const Data& rank_value, const Data& flow_id, const Data& level_id) + { + new_ranks_each_level.erase(new_ranks_each_level.begin() + flow_id.get() + (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0]*level_id.get())); + new_ranks_each_level.insert(new_ranks_each_level.begin() + flow_id.get() + (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0]*level_id.get()), rank_value.get()); + } + + void my_scheduler(const Data& in_flow_id, const Data& number_of_levels_used, const Data& in_pred, const Data& in_arrival_time, const Data& in_shaping, const Data& in_enq, const Data& in_pkt_ptr, const Data& in_deq, const Data& reset_time) + { + +// copy the inputs values :: Todo : they should be removed later and just use the inputs directly. + + if(reset_time.get() == 1) + { + time_now = 0; + } + flow_id = in_flow_id.get(); + + // pkt_levels_ranks contains the ranks of this packet at each level, levels_ranks[number_levels] for the root, and levels_ranks[0] for the leaves + for (int i = number_of_levels_used.get(); i < int(number_levels); i++) + { + pkt_levels_ranks.erase(pkt_levels_ranks.begin() + i); + pkt_levels_ranks.insert(pkt_levels_ranks.begin() + i, pkt_levels_ranks[number_of_levels_used.get()-1]); + } + + pred = in_pred.get(); + arrival_time = in_arrival_time.get(); + shaping = in_shaping.get(); + enq = in_enq.get(); + pkt_ptr = in_pkt_ptr.get(); + pkt_ptr_queue.push(pkt_ptr); + deq = in_deq.get(); + +// the core code of the pifo scheduler, that enqueue, dequeue or force dequeue packets. + run_core(); + } + +// the function for enqueue/dequeue to/from the third level of the hierarchy. + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void level_controller(std::shared_ptr& level_packet_ptr, unsigned int level_enq, unsigned int level_deq, unsigned int level_id) + { + std::cout << "level_controller called: level_id = " << level_id << ", level_enq = " << level_enq << ", level_deq = " << level_deq << std::endl; + std::shared_ptr head_FS = NULL; + std::shared_ptr out_deq_pkt_ptr; + std::shared_ptr head_FB = NULL; + unsigned int queue_id = 0; + unsigned int next_flow_id_empty = 0; + unsigned int sum_number_all_queues = 0; + unsigned int sum_all_update_rank_flows = 0; + + for(int i = 0; i < int(level_id); i++) + { + if(i ==0) + { + sum_all_update_rank_flows = (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0]); + } + else + { + sum_all_update_rank_flows = sum_all_update_rank_flows + number_of_queues_per_level[i-1]; + } + sum_number_all_queues = sum_number_all_queues + number_of_queues_per_level[i]; + + } + if (level_enq == 1) + { + std::cout << "Enqueueing at level: " << level_id << std::endl; + if(level_id < (number_levels - 1)) + { + queue_id = int(level_packet_ptr->flow_id / number_of_pkts_per_queue_each_level[level_id]); + std::cout << "queue_id = " << queue_id << std::endl; + } + + if(level_id == 0) + { + head_FB = FB[queue_id]; + } + + head_FS = FS[queue_id + sum_number_all_queues]; + + if(level_id !=0) + { + sum_all_update_rank_flows = sum_all_update_rank_flows + (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0]) * (number_levels-1); + } + + pifo(level_packet_ptr, shaping, level_enq, level_deq, \ + head_FS, head_FB, \ + time_now, out_deq_pkt_ptr,next_flow_id_empty); + + FS[queue_id + sum_number_all_queues] = head_FS; + if(level_id == 0) + { + FB[queue_id] = head_FB; + } + } + else if (level_deq == 1) + { + std::cout << "Dequeueing at level: " << level_id << std::endl; + if(level_id < (number_levels - 1)) + { + queue_id = level_packet_ptr->flow_id; + std::cout << "queue_id = " << queue_id << std::endl; + } + if(level_id == 0) + { + head_FB = FB[queue_id]; + } + + if(level_id !=0) + { + sum_all_update_rank_flows = sum_all_update_rank_flows + (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0]) * (number_levels-1); + } + + pifo(level_packet_ptr, shaping, level_enq, level_deq, \ + FS[queue_id + sum_number_all_queues], head_FB, \ + time_now, out_deq_pkt_ptr,next_flow_id_empty); + + level_packet_ptr = out_deq_pkt_ptr; + } + } + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// determine the queues IDs for each packet corresponding to the first and the second level of the hierarchy. + void levels_queues_id(unsigned int flow_id) + { + unsigned int flow_id_at_this_level = int(flow_id/number_of_pkts_per_queue_each_level[0]); + enq_flow_id_each_level.erase(enq_flow_id_each_level.begin() + 0); + enq_flow_id_each_level.insert(enq_flow_id_each_level.begin() + 0, flow_id_at_this_level); + for(int i = 1; i < int(number_levels); i++) + { + enq_flow_id_each_level.erase(enq_flow_id_each_level.begin() + i); + enq_flow_id_each_level.insert(enq_flow_id_each_level.begin() + i, flow_id_at_this_level); + flow_id_at_this_level = int(flow_id/((number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0])/number_of_queues_per_level[i])); + } + } + +// I used check_levels for dequeue and for "Force dequeue" + void check_levels(std::vector& flow_id_found) + { + flow_id_found.erase(flow_id_found.begin() + 0); + flow_id_found.insert(flow_id_found.begin() + 0, 0); + std::shared_ptr cur_ptr_FS; + unsigned int sum_number_all_queues = 0; + for (int j = 1; j < int(number_levels); j++) + { + flow_id_found.erase(flow_id_found.begin() + j); + flow_id_found.insert(flow_id_found.begin() + j, 0); + sum_number_all_queues = sum_number_all_queues + number_of_queues_per_level[j-1]; + for (int i = 0; i < int(number_of_queues_per_level[j]);i++) + { + cur_ptr_FS = FS[i + sum_number_all_queues]; + while (cur_ptr_FS != NULL) + { + if (cur_ptr_FS->object->flow_id == enq_flow_id_each_level[j]) + { + flow_id_found.erase(flow_id_found.begin() + j); + flow_id_found.insert(flow_id_found.begin() + j, 1); + break; + } + cur_ptr_FS = cur_ptr_FS->next; + } + if(flow_id_found[j] == 1) + { + break; + } + } + } + } + + void update_ranks_level_all_levels() + { + unsigned int sum_number_all_queues = 0; + unsigned int sum_all_update_rank_flows = (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0])*(number_levels); + unsigned int offset_of_new_ranks_each_level = (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0]); + + for(int i = 0; i < int(number_of_queues_per_level[0]); i++) + { + if (FS[i] != NULL) + { + new_ranks_each_level.erase(new_ranks_each_level.begin() + i + sum_all_update_rank_flows); + + if ((new_ranks_each_level[FS[i]->object->flow_id + offset_of_new_ranks_each_level]!=0)) + { + new_ranks_each_level.insert(new_ranks_each_level.begin() + i + sum_all_update_rank_flows, new_ranks_each_level[FS[i]->object->flow_id + offset_of_new_ranks_each_level]); + } + else + { + new_ranks_each_level.insert(new_ranks_each_level.begin() + i + sum_all_update_rank_flows, FS[i]->object->rank); + } + } + } + + for(int j = 2; j < int(number_levels); j++) + { + sum_number_all_queues = sum_number_all_queues + number_of_queues_per_level[j-2]; + sum_all_update_rank_flows = sum_all_update_rank_flows + number_of_queues_per_level[j-2]; + unsigned int offset_of_new_ranks_each_level = (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0])*(j-1); + for(int i = 0; i < int(number_of_queues_per_level[j-1]); i++) + { + if (FS[i + sum_number_all_queues] != NULL) + { + new_ranks_each_level.erase(new_ranks_each_level.begin() + i + sum_all_update_rank_flows); + + if ((new_ranks_each_level[FS[i + sum_number_all_queues]->object->level3_flow_id + offset_of_new_ranks_each_level]!=0)) + { + new_ranks_each_level.insert(new_ranks_each_level.begin() + i + sum_all_update_rank_flows, new_ranks_each_level[FS[i + sum_number_all_queues]->object->level3_flow_id + offset_of_new_ranks_each_level]); + } + else + { + new_ranks_each_level.insert(new_ranks_each_level.begin() + i + sum_all_update_rank_flows, FS[i + sum_number_all_queues]->object->rank); + } + } + } + } + } + +// the core function of the pifo scheduler, applies enqueue and dequeue operations, to & from each level of the hirarchy, +//and each level is responsible of enqueue and dequeue in each queue inside this level + void run_core() + { + deq_packet_ptr = NULL; + + if (enq == 1) + { + if(start_time == 0) + { + start_time = std::time(0); + } + + // before enqueueing the packets he is incrementing the number of packets in the queue + number_of_enqueue_packets = number_of_enqueue_packets + 1; + + // Make sure we update the sync variables for proper dequeuing + update_read_packets(); + + std::shared_ptr enq_packet_ptr; + enq_packet_ptr = std::make_shared(); + enq_packet_ptr->level3_flow_id = flow_id; + enq_packet_ptr->flow_id = flow_id; + enq_packet_ptr->rank = pkt_levels_ranks[0]; + enq_packet_ptr->pred = pred; + enq_packet_ptr->pkt_ptr = pkt_ptr; + enq_packet_ptr->levels_ranks = pkt_levels_ranks; + enq_packet_ptr->arrival_time = arrival_time; + + if (debug_logging) { + Logger::get()->info("PIFO: Enqueueing packet with flow_id={}, pkt_ptr={}, rank={}", + flow_id, pkt_ptr, pkt_levels_ranks[0]); + } + + levels_queues_id(flow_id); + std::vector flow_id_found_all_levels = std::vector(number_levels); + check_levels(flow_id_found_all_levels); + // levels_ranks should be the updated flows ranks + + unsigned int enq_level_id = 0; + for(int i = number_levels - 1; i > 0; i--) + { + if (flow_id_found_all_levels[i] == 0) + { + enq_packet_ptr->rank = pkt_levels_ranks[i]; + enq_packet_ptr->flow_id = enq_flow_id_each_level[i]; + enq_level_id = i; + break; + } + } + + level_controller(enq_packet_ptr, enq, 0, enq_level_id); + } + + if ((deq == 1)&&(switch_is_ready == 1)) + { + last_time = std::time(0); + + if(last_time > start_time) + { + time_now = last_time - start_time; + } + else + { + time_now = 0; + } + + if(number_levels > 1) + { + update_ranks_level_all_levels(); + } + + // Ensure we can properly dequeue packets by fixing synchronization + ensure_packet_dequeue(); + + if (debug_logging) { + Logger::get()->info("PIFO: Attempting to dequeue a packet, sync state: read={}, enqueued={}", + number_of_read_packets, number_of_enqueue_packets); + } + + // Reduced sleep time to improve performance + std::this_thread::sleep_for(std::chrono::microseconds(10)); // Was 810 microseconds + + deq_packet_ptr = std::shared_ptr(std::make_shared()); + + level_controller(deq_packet_ptr, 0, deq, number_levels - 1); + std::shared_ptr intermediate_pkt_ptr = std::shared_ptr(std::make_shared()); + if(deq_packet_ptr != NULL) + { + if (debug_logging) { + Logger::get()->info("PIFO: Successfully dequeued packet at top level, flow_id={}", + deq_packet_ptr->flow_id); + } + + unsigned int prev_level_dequeued_flow_id = deq_packet_ptr->flow_id; + for(int i = number_levels - 2; i >= 0; i--) + { + intermediate_pkt_ptr->flow_id = prev_level_dequeued_flow_id; + level_controller(intermediate_pkt_ptr, 0, deq, i); + if ((intermediate_pkt_ptr == NULL)&&(shaping)) + { + // Try again without shaping if we failed with shaping + unsigned int original_shaping_value = shaping; + shaping = 0; + intermediate_pkt_ptr = std::shared_ptr(std::make_shared()); + intermediate_pkt_ptr->flow_id = prev_level_dequeued_flow_id; + level_controller(intermediate_pkt_ptr, 0, deq, i); + shaping = original_shaping_value; + } + if(intermediate_pkt_ptr != NULL) + { + unsigned int last_dequeued_pkt_flow_id = intermediate_pkt_ptr->flow_id; + intermediate_pkt_ptr->flow_id = prev_level_dequeued_flow_id; + prev_level_dequeued_flow_id = last_dequeued_pkt_flow_id; + unsigned int offset_of_new_ranks_each_level = (number_of_pkts_per_queue_each_level[0]*number_of_queues_per_level[0])*(i); + if ((new_ranks_each_level[intermediate_pkt_ptr->level3_flow_id + offset_of_new_ranks_each_level]!=0)) + { + intermediate_pkt_ptr->rank = new_ranks_each_level[intermediate_pkt_ptr->level3_flow_id + offset_of_new_ranks_each_level]; + } + else + { + intermediate_pkt_ptr->rank = intermediate_pkt_ptr->levels_ranks[i+1]; + } + level_controller(intermediate_pkt_ptr, 1, 0, i+1); + } + else + { + if (debug_logging) { + Logger::get()->warn("PIFO: Failed to process intermediate packet at level {}", i); + } + break; + } + } + } else { + if (debug_logging) { + Logger::get()->warn("PIFO: Failed to dequeue any packet from top level"); + } + } + } + } + + +// This is the pifo queue function which handles 1 flow_scheduler and 1 FIFO at a time, this function is used by each level function + void pifo(std::shared_ptr pkt_ptr, unsigned int in_shaping, unsigned int in_enq, unsigned int in_deq, std::shared_ptr& in_head_FS, std::shared_ptr& in_head_FB, \ + unsigned int in_time_now, std::shared_ptr& out_deq_pkt_ptr, unsigned int& next_flow_id_empty) + { + std::shared_ptr deq_packet_ptr = NULL; + std::shared_ptr cur_ptr_FS; + next_flow_id_empty = 0; + +// in case of enqueue (enq ==1), a packet will be enqueued to flow scheduler first enqueue_FS (if its flow already existed there), it will be enqueued in the FIFO bank instead. +// in case of dequeue (deq ==1), a packet will be dequeued from the flow scheduler dequeue_FS, then the next packet from the same flow will be dequeued from the FIFO bank dequeue_FB, +// then enqueue this next packet to the flow scheduler enqueue_FS. + if (in_enq == 1) + { + std::shared_ptr enq_packet_ptr; + enq_packet_ptr = std::shared_ptr(std::make_shared(*pkt_ptr)); + + cur_ptr_FS = in_head_FS; + + enqueue_FB(enq_packet_ptr, in_head_FB); + + enqueue_FS(enq_packet_ptr, in_head_FS); + } + if (in_deq == 1) + { + dequeue_FS(deq_packet_ptr, in_shaping, in_head_FS, in_time_now); + + if (deq_packet_ptr != NULL) + { + std::shared_ptr FB_FS_enq_packet_ptr; + FB_FS_enq_packet_ptr = std::shared_ptr(std::make_shared()); + dequeue_FB(FB_FS_enq_packet_ptr, deq_packet_ptr->flow_id, in_head_FB); + deq_packet_ptr = NULL; + deq_packet_ptr = FB_FS_enq_packet_ptr; + } + + } + + if (in_deq == 1) + out_deq_pkt_ptr = deq_packet_ptr; + else + out_deq_pkt_ptr = NULL; + } + +// used by pifo function to enqueue inside a certain flow scheduler + void enqueue_FS(std::shared_ptr new_packet_ptr, std::shared_ptr& head_FS) + { + std::shared_ptr cur_ptr_FS; + cur_ptr_FS = std::shared_ptr(std::make_shared()); + std::shared_ptr prev_ptr_FS; + prev_ptr_FS = std::shared_ptr(std::make_shared()); + if (head_FS == NULL) + { + head_FS = std::shared_ptr(std::make_shared()); + head_FS->object = new_packet_ptr; + head_FS->next = NULL; + cur_ptr_FS = head_FS; + } + else + { + cur_ptr_FS = head_FS; + prev_ptr_FS = NULL; + std::shared_ptr temp_ptr; + temp_ptr = std::shared_ptr(std::make_shared()); + temp_ptr->object = new_packet_ptr; + while ((cur_ptr_FS != NULL)) + { + if((cur_ptr_FS->object->rank < new_packet_ptr->rank)||((cur_ptr_FS->object->rank == new_packet_ptr->rank)&&(cur_ptr_FS->object->arrival_time < new_packet_ptr->arrival_time))) + { + prev_ptr_FS = cur_ptr_FS; + cur_ptr_FS = cur_ptr_FS->next; + } + else + { + break; + } + } + temp_ptr->next = cur_ptr_FS; + if (prev_ptr_FS == NULL) + { + head_FS = temp_ptr; + } + else + { + prev_ptr_FS->next = temp_ptr; + } + } + } + +// used by pifo function to enqueue inside a certain FIFO bank + void enqueue_FB(std::shared_ptr new_packet_ptr, std::shared_ptr& head_FB) + { + std::shared_ptr cur_ptr_FB; + cur_ptr_FB = std::shared_ptr(std::make_shared()); + std::shared_ptr prev_ptr_FB; + prev_ptr_FB = std::shared_ptr(std::make_shared()); + std::shared_ptr temp_ptr; + temp_ptr = std::shared_ptr(std::make_shared()); + temp_ptr->object = new_packet_ptr; + temp_ptr->left = NULL; + temp_ptr->bottom = NULL; + if (head_FB == NULL) + { + head_FB = std::shared_ptr(std::make_shared()); + head_FB->flow_id = new_packet_ptr->flow_id; + head_FB->bottom = NULL; + head_FB->left = temp_ptr; + cur_ptr_FB = head_FB; + } + else + { + cur_ptr_FB = head_FB; + prev_ptr_FB = NULL; + unsigned int flow_id_FB_found = 0; + while (cur_ptr_FB != NULL) + { + if (cur_ptr_FB->flow_id == new_packet_ptr->flow_id) + { + flow_id_FB_found = 1; + while (cur_ptr_FB->left != NULL) + { + cur_ptr_FB = cur_ptr_FB->left; + } + cur_ptr_FB->left = temp_ptr; + break; + } + prev_ptr_FB = cur_ptr_FB; + cur_ptr_FB = cur_ptr_FB->bottom; + } + if (flow_id_FB_found == 0) + { + std::shared_ptr temp_ptr2; + temp_ptr2 = std::shared_ptr(std::make_shared()); + temp_ptr2->flow_id = new_packet_ptr->flow_id; + temp_ptr2->left = temp_ptr; + temp_ptr2->bottom = NULL; + prev_ptr_FB->bottom = temp_ptr2; + } + } + + } + + void dequeue_FS(std::shared_ptr& deq_packet_ptr, unsigned int in_shaping, std::shared_ptr& head_FS, unsigned int time_now) + { + // Ensure proper synchronization before attempting to dequeue + ensure_packet_dequeue(); + + std::shared_ptr cur_ptr_FS; + cur_ptr_FS = std::shared_ptr(std::make_shared()); + std::shared_ptr prev_ptr_FS; + prev_ptr_FS = std::shared_ptr(std::make_shared()); + deq_packet_ptr = NULL; + if ((in_shaping == 1) && (head_FS != NULL)) + { + cur_ptr_FS = head_FS; + prev_ptr_FS = NULL; + // Modified: Removed the check for pkt_ptr <= number_of_read_packets + // This synchronization is now handled by the ensure_packet_dequeue() method + if (cur_ptr_FS->object->pred <= time_now) + { + deq_packet_ptr = head_FS->object; + head_FS = head_FS->next; + } + else + { + while (cur_ptr_FS != NULL) + { + // Modified: Removed the check for pkt_ptr <= number_of_read_packets + if (cur_ptr_FS->object->pred <= time_now) + { + deq_packet_ptr = cur_ptr_FS->object; + prev_ptr_FS->next = cur_ptr_FS->next; + break; + } + prev_ptr_FS = cur_ptr_FS; + cur_ptr_FS = cur_ptr_FS->next; + } + } + } + else + { + // Modified: Removed the check for pkt_ptr <= number_of_read_packets + if (head_FS != NULL) + { + deq_packet_ptr = head_FS->object; + head_FS = head_FS->next; + } + } + + // Log dequeue results for debugging + if (debug_logging) { + if (deq_packet_ptr != NULL) { + Logger::get()->info("PIFO: Successfully dequeued packet with ptr={}", + deq_packet_ptr->pkt_ptr); + } else { + Logger::get()->info("PIFO: Failed to dequeue packet, no eligible packet found"); + } + } + } + +// used by pifo function to dequeue from a certain FIFO bank + void dequeue_FB(std::shared_ptr& deq_packet_ptr, unsigned int flow_id, std::shared_ptr& head_FB) + { + std::shared_ptr cur_ptr_FB; + cur_ptr_FB = std::shared_ptr(std::make_shared()); + deq_packet_ptr = NULL; + cur_ptr_FB = head_FB; + while (cur_ptr_FB != NULL) + { + if ((cur_ptr_FB->flow_id == flow_id) && (cur_ptr_FB->left != NULL)) + { + deq_packet_ptr = cur_ptr_FB->left->object; + if (deq_packet_ptr != NULL) { + cur_ptr_FB->left = cur_ptr_FB->left->left; + } + + break; + } + cur_ptr_FB = cur_ptr_FB->bottom; + } + } + +// return the last enqueued packet pointer to be used in the buffer inside the "Simple_switch" target + unsigned int get_last_pkt_ptr() + { + if(!pkt_ptr_queue.empty()) + { + unsigned int current_pkt_ptr = pkt_ptr_queue.front(); + pkt_ptr_queue.pop(); + number_of_read_packets = number_of_read_packets + 1; + return current_pkt_ptr; + } + else + { + return 0; + } + } + +// Apply dequeue operation in the scheduler, will be used inside the "Simple_Switch" target + unsigned int dequeue_my_scheduler() + { + flow_id = 0; + pred = 0; + enq = 0; + unsigned int null_ptr = 0; + deq = 1; + + + run_core(); + + if(deq_packet_ptr != NULL) + { + number_of_dequeue_packets = number_of_dequeue_packets + 1; + + switch_is_ready = 0; + + if(pkt_ptr !=0) + pkt_ptr = 0; + return deq_packet_ptr->pkt_ptr; + } + else + { + return null_ptr; + } + } + +// return the number of enqueued packets until now to the "Simple_Switch". + unsigned int number_of_enq_pkts() + { + return number_of_enqueue_packets; + } + + + unsigned int number_of_deq_pkts() + { + return number_of_dequeue_packets; + } + +// return the number of captured packets until now by the TM_buffer.h. + unsigned int num_of_read_pkts() + { + return number_of_read_packets; + } + +// A flag from the target switch, indicating that the switch is ready to receive a new dequeued pkt from the TM + void start_dequeue(unsigned int start) + { + switch_is_ready = start; + } + +// reset the number of enqueued packets to zero by the "Simple_Switch" + void reset_number_of_enq_pkts() + { + number_of_enqueue_packets = 0; + } + + + private: + // Attribute + Data verbose{}; + + // Data members + bool verbose_{false}; +}; + +} // namespace bm +#endif diff --git a/utils/user_externs_pifo/pifo.so b/utils/user_externs_pifo/pifo.so new file mode 100755 index 0000000000000000000000000000000000000000..df5e6e2a392feb0330543521879e169b629887d9 GIT binary patch literal 3159912 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%0Dmat2f?c-ZwUNV&@&8vDeM*jzYY1u zz;A{AaqwfHPXhdPNS_2h4dqRN{~UH+1b-R)Fb#eNcn16h@WUnWQP?L7{zS;hfxi-V z%Y%uYm7?K2`A7BHtSLKasD)Z~1=?@}1x(K)wt7 zW8iM^D_{o?_?O@hUho^Crw{xdr1yir6ZH}R{|5Xv2!1E@41wPbKMaF^3HFbGFF{TW z{KH5e2Y(6dkN_{^IZA?GjB=&GlSsb^{z}MCgMR>a$bg>)IZNOlq5p$l0YAxs&w%H_ z??%1_@UNp>Met9-o+a=fQKO`20jKm z#KFIX=Qjaai_-+IA64?TV02cus6;91BIfZqat2!a<;-Vpdaco_V9&@%$Qfb=o&-QaQX z8{oGI@K;06B>0!WQ{c~r{TIO>0{Ln1+u=VM@ZUnuCGa%TXTi^c{d3@}!1LfIpq(#( zzZdmY1RqDfCGaP~{$=pzA>Ru4!(q27_%X=02L2Y<&GBT*|Fh8F3H~gkcY(hE`MSa1 zgXhQt?t(sE@OL4-5B%$}k01P}uulN|S@4q}_|Kt#2>cB2F!+(sGXj1h(#OF6isv^D z{%qJM0sa}(V-kEl?2rQg6zXLW{3`f!8vL`+KLh?z$X^2gINGr+_yb}89Qc=zJ`esz z=ve@NKgwGKe-7+Z0)H~>Tn7I<>b(NK9`>(-Uk~{;@Z+J6<0+Q^-vE0$!Dk@f1-=pX zaf81ZcJ_dOANAq|zYpns;GcqgKlljb1i(KAy9L2-gB?QPw=_4tAncz2KN9kj;Ex1Pfu~^4Mey&yuhQT@fSe5Y^C4#m{4HpIvfy(_p95b4&x3D5 zz6J0vz&=IrhrymDa4-C=41O{6tbl(G>8s#lcrI$-M?xRR(=7jg1Gp3X7pO-U__I-7 zH~2TPopoE6$oKPkCFhls*KWW4K7RlG z9uIvyD)aoD^ZA_5`}6sn&zv*o>^ZLVf@?hQ;Yz>6)y{jn($8^~Gs~6U@2Y2wEB&9Y z^=G@%?{c-<5w7%$TVKvy{c=~o&vm7rcyyVBcS z^_k~Nzt>g%wXXCESHIulO7C`+f0rx$O;`GSSNch=dMCd~` ze~Bx7k*ob*bEW^rH7_l7rElPhcgU6gCs+CkS9+Cee_7>9-`N${lmjNl|D&$)Gu4&8 zx2vAhTDumWS9+%_-XmP;hq$(Tj4OS_m41>d{R!82JI$4Tva6nFy3!Z9+GnmSeU2;rVpsYT zuJ)PdO5fDA-(BlU_qoQ;Ew1!~UF~p}EB*Jbc9`!ET9@H0{Y+Q-4zBg*y3)6IwdcjI z^fz4T^IYl2xZ2@bSNhJbcyDo~ALm;CE?0We)eiGr>7B0ew!oD>#T8e#D}623`iouZ zC%g9FC9d=(u6B6MmHu~E{g=AZFL1TPkSl$vYr894=?}QJyULY*i)(+G5}X+SZ@9KQ z)s_CNtKFu#(m!&QKi!pnpR0XlxYDn5we!xd^q;%xzlSURH?H)(UFmPS+HICAz1p?i z8dv(EuJP;+{fEy#w7?H7@Iwpy&;mcSzz;3(Lks-S0zb6C4=wQj?-uy1blY!gnm(Rd z)8fsV_aoLMyXUMmx}>J*nW>8q*l5+eCVAy(#e3#Y>2_1>`X|{XE0+~UM@Q$u_Pk@| zvOI0ib5<_P(e`(pmCLfUJwIBxEJNGhQ&uiZ)Aqb)<+22A&qr1+i_!LcX63RdZO_A2 zE(_E4yk_OHAZ^bBS1t?C_7raAGCy4c`{<2f4_yiuzjxxD1{Y`_oToQ|bM&Tgmfj4` z&}DF%-W*QQTfi}TIvl09gv0b!aFE^_4$#}ce!3j?(c8ivdONr{;>14#F3^5BPj3(B z=pEoJy(65VE8sM}6P%!b1jp!|;V3;54%559L3&p>K<@_o=}Oo~?+$zDAH&7(ocQ;E z3v>X^)Aq&bX8hCkMc!uo(|f`hx(ZIy_Qkkn{L_2EF?w$}O4}EJn(A%21`mb<+ zJ_YvE4X}?s7532fhF%l@DkuKa-~t_k^Yq{09BpqLH2Xh22hPxOI8C1cCun=)lKK9l z?F|nme)=ppOxp{mrvGVs0o3$AZ7*<|??1W`_R;6U9{N1E_>~j?T)03d;5>akoTHoI zEPVl-p_6c$z7S5(7r`<5VmL}S!(sXoI7qj^0s2zdPp4oXeHrYbFNcd?I`Pkg3v?RJ z(^tSb`bs!UUj=9ARya*x4JYVp;23=^9Hp;=!}RrVkiG#9&^N+3--}Z!5;c)xcHe9e>Ys9b8wzs2?577{AN@A$q2GavMJN8HaDgtsdHP*AN52PW>G$CbJqV}i z58wp-AsnNJ;3&Ne4$~jOL3%kHpg)HF^f2tBKY=~;r*LtF6aNahKo{XWy%NsRpTSxB zb2vkP0jKFN;RO8^9HUpkQTl5*On(Ch>2Kix{T=M5M_?cQJ?x=J;o_%G{PqE7=KPzX?4x&wJ+ytGoH_pg*ol7+ zxIo(%FPQO9{{+s_KZUdOo^Xb)g46WR-~?@7lxL3r>Am47y$>9w_l1MBy`kD1|I_=! ze!3d=(e?%dGydrV;No&8{#kH=wlBmq@zcM6bF_T`o;m-a4}>#x2u{<#f)n&XaEz{j zqx8XWn6@uWH0M9Gy)nYXPagvN=~~!F9}0VD`yffv{~tN=&xQ-MeK47cpSBOYH1i*Q z7@VaKhck2pPSd}K6Z9Y87<~jBrT++rY5T$$6F>cDI6xl>`{_E^M;`@y=%eA{GAI6H z-~w&`L7|DCJ{Hc=$H7_pcsN7X!)f{iI6A%7O`V`ntH^4sn zRMyHe63)_B!5O+0PSaPz z3Hlm1Mqdj@>FeMyeLWncZ-4{zjj*3?gMIW(u!p`GE)F{J-vSrt44kKLg>&?6aF)Iu z&d}{}n!W>0(09Ty`Yt$1-wlW9d*C2_FC3ungZ*>|?4$38J@f-`@qH)$`EY^G!g=~Z zI7dGOXX%IG4BZK*=||uM{U{ux7r;^aF*r;=4hQKc-~jz3?5De6AN>^Up`V6}?>X^z z!v#7A=jnxTj$Q<3>1W^!-2`Q0R24dr~6Y8zYFK+_uwr3KAfQk;WYgLoS;91WAqRlrI*2B`Xe|< zFNXv4$FQFshJExWu!sH>E-rQAUjY~BBAlmJ!a4dgI7@#HXXr2BH2o!iG6aO^0K-&knnB!l16F5h2 z3TNrf;0#>`r|He%1Z^MOV9x*O>2Q?Z5)RY$AKshee|l>;KyL&4>2ladZwq_q?cm~o z6aNgjK-(AEnE2`K;T*jKoTYb!Gjs)@ecZWUnkKy85PW*eo1v&udY5RaMbN)yF6wcCn!Wp^>PSZbw6ZBqijJE&4 z%*0Rc1BdB-;UH}v5Ma)K>HT3pT@Cx_pTi#d0J!+36aOr@K-&jHnEt1K0q5vn!dd!2 zI78b9lbhdv=wHDJ`XD$)*T7NwU^qGe8Y)q#40LN(iU?tQ4^dI3cZ682l_J8`%aDYA%_S1E+ zk3I_a&_~0?*PZx}feUmL&eO-jIr=y_OCJws=z2I!p8zN56X6(r5*(%NKNvFSzw}?= zApKW3K%WBp=?2(Gp9*{Ezrn@VocK?J3v>+5(|?C^^yzSxo&#s-IGm=>fD`mT;23=- z9Hq~K!}Qs3kUj?v(DngY=J!w9KCr;dfAqPqhdvK3zUst37cS5VI8UDs=jbLlOJ4wI z=p>w`FN72HMR1J17>?4-aG1UX4$>`ffW8#=(<#_TUj}>V%i-cHPW3iTHeJ>oK?}Pnx2kfKohduNI zaPeg){`qi$&cb>6K{!W01ZU}o;SAjgr|C!F1pO!+qZhzY`Y||6KMn`!C*T16B1W{t-3!O)#c-5<4i3}*f`jzG z;Q;+S?5F!+AN>OCpClI7%;r!}LdRkX{Z4=#ODPJq-KkPhb!IDO_CQ#J>VA&_y^;uY_~-XKQnH)8D{B`dc_ae+T>N5!gq64}0iQxcH(I|CF`u@j`+2z2#(SAfh^|yhn@+C z>0RI;Z69Q8`k&qn_S5zSH|F@4-W~SPKZc9XJMr5WzMJt+2jDzyA9!ZY|LLE?S$a=6 zLs!9R`e$&0-V2V=d&5zBA2>|g2V$D@KYBknK<^Lx>1x|9 z)4zao^e^EoeIT5nLvWh@6`Y_Cf@5?I9HkG2!?b+5(|?C^^yzSxwl8Qh z@zZfQO`icL=zqX5+P=`i%zyM*aF{+D4$|kq0s5b?pKgSG^trHyJ`XPTI`Pki3v>d` z)91rEx(UwG7r+@h38(1`;RJmV9HTFWqjWPIrZ0hmbPF7yFNOVd3ii>L!5;c@xcICS z|2()rr{O$(1)QU=gtPQjaE5M$)AZGFg1!ch(bvLJ`Z_pFUk?ZA8{hzaBkZT!U>|)G z?4fUli#<;Kx4;ED1Lx^m;T(M%oTYDvGjuzgrtg3g^qp{wz6*}hcf(=&9ymzf3kT@? zU_adf`{?^&5B&gKe8!1?K3t%)aGrh;&e0FSS^8l(LwCYy`VlxmKMKd_1#pyp3=Y$e z!$JB9I6yxM`{^#&M?VF7=%?Z0A}9WCxIpLNJiQRk(Tm_L{S2I;d*C$vES#Ww;TXLb zj?&M;VftTikp4Fupr42RbRX=aUw}RIi*RwF6aNypK~6`YqT`55PY9ZP-J<0~d2n{7c~iU4ZlSyKs(v56;r> z!x?%IPSYR23Hn1gMi0SJdKnz1KZ1kwayUSL4EyO}*hhZ?d+1N$Vz(3j3b;TQ;XJ(( z&e5O2S^9H0Lw^CM=`Y~~{S_ReSHV&GYdB1Q0|)7E;Q;*|?59UyAN@V-p-183(@y+T z*0IMQ1=<7W>9yb-y*8Ys*MT#%7f#db!U=jkI7Ux}qxAZ4nBD*m()I7TNH5{O~f&Fwj?4!4ZJ+yuBv$_Ad%ZYymT%i4Mp0+RaHs`0RI;y(=7`cZ2g`-W!h6`@ms(UpPqb2M6f=VLx3B`)K_T0eE?j1 z!ij$tT%dz+p8f@#qkjo!=>y>m9fH&JuiylI5FDfJi+RlX4{cuzV$T0)`=SAJ{!iNn z1e^VzJ_PpDwXlyq6!y@+g^Q0n@y~_}bQsRlzk_r1VQ`i{9L~@YI8FZ^PSAgVWAqVl zl>Q?ervC&7=|95(`bgMM*TFveDA+?E4HqAC;CU#0Zz~-!ZG?JI7*)khv~n-LHe(7fIbEG(+#kXJ{9)Re}jt)ocK?J3v>+5(|?C^ z^yzSxo&#s-IGm=>fD`mT;23=-9Hq~K!}Qs3kUj?v(Eo(}bR+De&xJkod2sPjC;qu` zflk1A`g}M?H^Eu@0ysk_;WT|AoS-j)WAw#vlx~K@^d)eRZh-^zrLdn)!9Myj*h60q z7awurp9dG{G@PfefOGVfaF)Ib&d{xJn!XxN(AU5*`dT){}M100}lg#C0I z?4xgjJ@n0RvD1nF7PvrX;5>aRoTG1pv-It7hHi(`^c`@5z7vkocfnEmZa7Te0|)7Q z;Q)Of?58_mAALXUp&x*Y4?FSChYNHT&eIRVIrqRPcMXX^ddM*KLcmz9ym=u3n%Da zI7Tmqqx5rdnEn?Wr2h>E=;vWS-3R;V7hn(lB3yjXiGK-Pp!0B^{tuj^UxKsr%W#J7 zhtu>caDsjnj?u5dQTlZ_OuqpK={Mm3{TA$}2VfulHteC_fs0uu{-tn%F2H&ET{uU- z2WRQ`;S4ipuKRKUKdW#>%lR4DjcQPhr{#+aFE^*4$$^R zL+1RSE`fdY#;}Jjg^Tw)@lS&bw0&{4Isd0OfphexaF(_&R5S6@WpJ9_98S<%z%hC{ z9HqB}!}L~gkhU-SHs?R|Hn5*Ahkf+6u!r6bE_OKa&wvZGAI{U;!#R2fI7{ycXXpwz zP45IJ=pVr`dS^IF&xFJDE^v_E6%Nq5!G5|D_R;o*mFE1H{xMv<&xwBzxIhQsJpB_m zNBoPg`drvUp9dH3bmE^27w80>r_YCTbQ7GV zFMu<25>C?>!U_5!I7VL#N9krbOkV;A=@vLZUkdx_6zrofgFW=+aPbZ&{&{eLPQ!Wn z3OGk!31{i6;0)agr|GNV1bq!0qpyXd^mTBUz8((JH^2eHokv`Xx9^zYJ&SemG6P0w?HK;TZiI z9Hn1}!}J?)kbV;m&~L$hdI0v(Z^It?9k`fr;$I3E=mMOl--UDZdvKP1AI{K&aGL%A zPS791F?tA&(#zm5{Sh3bm%{=2W7tm*!#?^G*h7B`7jJRmUjY~BBAlmJ!a4dgI7@#H zXXr2BH2o!O*i+P=Wv-2Y8) z414HOxOkHj|1`Kj``|pi37n(tizm(XFM2aLLzls6dUH5IZvn^X>2Q?Z5)RW_!9jX! zI6!X$`{{DnM{f&z=F}y*uooe+(CIbmHFwF3|P`^XB&-`X_LX{wbWL_k=Ta6`ZDj z1}Esf;26C(9HsYx!}Pvzklqgt(EG!Fx*GP;KZiZ^0dVmKC;nM*feylX`WJAH{w18H z4}>#x2u{<#f)n&XaEz{jqx8XWnEo{!q<;ek=tE#XT?_l@Ltzj7Tex_=6aQ?uK!@Qx z{W~~E9|mXX!{H1afz$Nw;RO8$I7S}($HN)A9!}HtMXTob5BfwnMxO*n>676w{TDb${}m3aPe9v{?p(B9fR}q-{Bm6I-I5Fz!^FYr|C1`1pN;9gQ4eKs7V z&w&H1*S-wNmG+u$sH zJDj20;WT{*oS^T7WAt5cl)f7d)AztZ`d&Cd-v|5Y4%kQE4}0hb;Nn$I{PW=gorUxC zgK&<12+q4$jjH;T*jP&eG4o8M+5f)6c>Qx)+Yoi{U8!92}ClI7%;r!}LdR zkX{Z4=#ODPJq-KkPhb!IDO{ZA#J>VA&_y^;uY_~-XKQnH)8D{B`dc_ae+T>N5!gq64}0iQxOlk}|CIIY@j`+2zkKP#e(4}zkGAI6NaDn#0d3qB#M{f#e z>CNB_T?VJ=&EW*S1stQN!%=!mI81K^2kEWh0KEkzpaXE8{t29;e+p;mJ>d*p1*hqs!3laVI7aUcN9ldwFugAvr1ygZ^!~7)u7-W| z&tVUJ090iS^`ZsWZ zJ_PpDwXlyq6!y@+g^QOs@y~_}bQsRlzk_r1VQ`i{9L~@YI8FZ^PSAgVWAqVll>Q?e zrvC&7=|95(`bgMM*TFveDA+?E4Hui8_>X}LbQI3h$HF=KI52Q{w183+s zoTkr!6ZAje7=0!jrO$%H^x1HbJ_ioa|AhT?BkZHkg+26naPcB1{<(00PQZEkd^krp z!CCqOI727lG<_kQpf7@B^u=(LZid73C2){#fdllVu%AxBKKe4)LthRTFLdIc2N&ox zoTsmVbM%#Pmc9zk(5-Nqz8X%@*T6CQS~yBy2Z!nF;UIkj9H4K6{d61bqi=#e^v!TF z>BN5vT%a>>p1u{%(YL`_`gS-&x5H`r4md&I3CHNW;3$1J9H#GqgY>;{fW8m*(;cvn zz906`55UC>ocQO%1v(4o=?CE){Scg`ABHn@C!D4qffMwjaEx96N9o7lF#R|jq@RET z^pmik?t*>vQ?Q4A8ZI_D@pr=oItSa5u1ZU}I;0)aZr|DFM$hm9?sMMfphdraF%`<&d~jEntlaN(67QV z`ZYL8zYd4#H{c-sCLEyOg8lRW?4#d?J@h+pG2z6&6fV#OI8VO|=jiv~Ed4&5p$FkK z{Q;byKZIlS5FDkK!D0F%I7lyt1N6tRpB{#N^e3=~{uD0Gb>d$E7w96Kr&q!``ZG97 ze-3BpFW@x&C7htYf@Ab5I7)vFhv{$NApI>IpudCt^a$*uzlS~aC|o?xiGRveod44v zI8Uzy=jgTJEWHk#p}laLUKdW#>%lR4DjcQPhr{#+aFE^*4$vFHe!2wq(Hp}ax)d&+ z>%>0|F3>(WPj3R}=uP1)y&0UL%iuJ%kfMfJ@I7)8`hv}{0AiXslptphjbUEy! zw}n0Qc5t!LiGK!Mp#5;3-X6};JHT0bM>s=Qz-f9XIN^BZXvN6h-YKQq9XMsmXQkVI zW9;2$vXkOIaqGU5*Z*R_$sQ3`?mv0?uy{~BAnq6UiF?Fd;!bggxLw>PZWX7*NpYh% zE^ZLli|fP@ajiHct`=8`E5#M!a&eisMC=u7|Lgb|mhmwt9uW77`@}usE^(*0L)&12Ah`3f95?70>#FgR-ak;omTq5?0M|6G=4~qxI1LA&hpSVZd zCGHe=h}*?&Vx8|&vOFnn6vxF4;(BqNI3lhUhs4$5DsiQ_LR>B`6PJj+;t~12_(D7^ z9uyCV`^EZw)FaEg#GT>}al5!p+$v6q_4~3>mdC{n;(BqNI3lhUhs4$5DsiQ_LR>B` z6PJj+Vm-e2LXJ0v#e?Djalg1v+#~K1cZxg2?cz3Zt2iZ2iW|joaf7&CTqll*YsDdP zwYW-LDXtKgi_63%Vy}2)ugS-IUx^kzqn7_BkmG+iaW&Z;x=)sI3-Ss8^v*P zgScK?Cyt0~#UXLExJq0pt`L`t%fuyOuXyBV(*NRN@t}A>+%N7E_lUd1o#GC0ySPo< zDo%-$;zn^?+#s$O*NG$IT5(8REv^z*iYvtB;xciG*ef2XlKvMDiwDI6;(l?TxJTS2 z?i6>3+r@3-R&h$46gP_F;s$ZOxK11q*NQ{pYH^jgQd}V}7ng}k#9r~pp3?u~Vez1N zK-@3x6ZeR_#GT>}al5!p+$v6qlj25kT-+e87uSg+;#zS?TrI8=SBfjd<>E4NiP$S1 z`Kk23cvw6r9uW77`@}usE^(*0L)&12Ah`3f95?70>#FgR- zak;omTq5?0M}8vxFCG>TiU-8~;y!VYxJ%qA?hv<&+r+KnlsGAF6vxF4;(BqNI3lhU zhs4$5DsiQ_LR>B`6PJj+;*o&#zj#{{^i~Gbq;x2KgxI^47ZWFhPQ{tq!Q5+XH zi0j35;)u9b91>THtHhP!3URr(Ok5)NibwX4{ud962gL*8esQ0;N8Bau6nBW*#ckqN zaY~#NH;Uup264T(P8<=}ibLXRah14ITp=zOmx)WnUh&9}rT@jl;z99%xL@2S?h$v1 zJH;L1c5$1yRh$wh#f{>)xItVmt`kSZwc?PtT3jWr6jzAL#bx3Wu~$5@yY#&12Ah`3f9 z5?70>#FgR-ak;omTq5?0M|PF|7Y~aE#RKAgai6$H+$HW5cZl1?ZQ@pON}LooisRx2 zalN=s91+)wL*i<2mAFz|Aubn}iA%&@@yIUH|Kefspm;#sFYXifh`Yp{;tp}UxJ}$D zPKlG^MsZx+Ag&kJi6i1#aY$S(t`b*@E5zmEGI5F6D;}9C{VyIC4~hrG{o+1xkGMZkZWPDG4dQxnoj4+{6^F#t;wo{axI$bmE)$oCz2cFbrT@jl;z99% zxL@2S?h$v1JH;L1c5$1yRh$wh#f{>)xItVmt`kSZwc?PtT3jWr6jzAL#bx3Wu~$6u zBk6zfuy{~BAnq6UiF?Fd;!bggxLw>PZWX7*NpYh%E^ZLli|fP@ajiHct`=8`E5#M! za&eisMC=uh>?Hj!9u^OZ2gLp2K5>t@OWY~$5Vwol#I53#I4N!v$HfiedU2gNBCZvO z#MR;|aizFITrMsXmx#UMkqYU5@vwMMJRt5D_lbMNUE)r0hqztbCTTiU-8~;y!VYxJ%qA?hv<&+r+Kn zlsGAF6vxF4;(BqNI3lhUhs4$5DsiQ_LR>B`6PJj+;*lMs|HZ@NLGggNU)(3|5qF6@ z#U0{yahteRoDwI+jpDetL0m7c6Gz0g;*hvnTqUj)SBT5SW#SUCS3I)4^uKsmJSZLz z_lx_)J>o8Lr?^AhE^ZUIic{jGxKSJzH;C)Sb>fJ)RvZ#ni>t(y;tFxOxJ+Ck_KHXR z(*NRN@t}A>+%N7E_lUd1o#GC0ySPoTn8DQ*&12Ah`3f95?70>#FgR-ak;omTq5?0N6MxD#lzx3@qoBr+$Zi4cZoa2 z9pZLzo48e+5+}ut;<&g$TraK@N5r+_khof0C9V`#h|9%g;u5h}JhF}Szj#{{^ zi~Gbq;x2KgxI^47ZWFhPQ{tq!Q5+XHi0j35;)u9b91>THtHhP!3URr(Ok5)NibuAV z{ud962gL*8esQ0;N8Bau6nBW*#ckqNaY~#NH;Uup264T(P8<=}ibLXRah14ITp=zO zmx)WnUh&9Q(*NRN@t}A>+%N7E_lUd1o#GC0ySPo&12Ah`3f95?70>#FgR-ak;omTq5?0M>d!K7Y~aE#RKAg zai6$H+$HW5cZl1?ZQ@pON}LooisRx2alN=s91+)wL*i<2mAFz|Aubn}iA%&@@kp8U zzj#{{^i~Gbq;x2KgxI^47ZWFhPQ{tq!Q5+XHi0j35;)u9b91>THtHhP!3URr( zOk5)Nibpn+{ud962gL*8esQ0;N8Bau6nBW*#ckqNaY~#NH;Uup264T(P8<=}ibLXR zah14ITp=zOmx)WnUh&AL(*NRN@t}A>+%N7E_lUd1o#GC0ySPoPZWX7*NpYh%E^ZLli|fP@ajiHct`=8`E5#M!a&eisMC=uhOq2c>4~qxI1LA&h zpSVZdCGHe=h}*?&;#P4=oD?^T&12Ah`3f95?70>#FgR-ak;om zTq5?0M>dxJ7Y~aE#RKAgai6$H+$HW5cZl1?ZQ@pON}LooisRx2alN=s91+)wL*i<2 zmAFz|Aubn}iA%&@@kojEzj#{{^i~Gbq;x2KgxI^47ZWFhPQ{tq!Q5+XHi0j35 z;)u9b91>THtHhP!3URr(Ok5)Nibpn*{ud962gL*8esQ0;N8Bau6nBW*#ckqNaY~#N zH;Uup264T(P8<=}ibLXRah14ITp=zOmx)WnUh&9=(*NRN@t}A>+%N7E_lUd1o#GC0 zySPoA-iEFKgOi2KET z;vR9AxKrFAZWp(STg54HQrswxiyOrC;yQ6eTq_QVtHo8~N^ym_TwEqD5qrfW>r4NO zhsA^90dc>$PuwH!5_gI_#O>lXajQ5bPKq1FadCsVUR)=Rh-<|makaQgTq&*)my659 zC1S65WUBPPcvw6r9uW77`@}usE^(*0L)&12Ah`3f95?70> z#FgR-ak;omTq5?0N7j@67Y~aE#RKAgai6$H+$HW5cZl1?ZQ@pON}LooisRx2alN=s z91+)wL*i<2mAFz|Aubn}iA%&@@yNQ;|Kefspm;#sFYXifh`Yp{;tp}UxJ}$DPKlG^ zMsZx+Ag&kJi6i1#aY$S(t`b*@E5zmEGI5F6D<1Jm|BHvkgW>^kzqn7_BkmG+iaW&Z z;x=)sI3-Ss8^v*PgScK?Cyt0~#UXLExJq0pt`L`t%fuyOuXtn~>3{LCcu+hb?icro zd&FJhPH~60UEC&a6{o~WaicgcZV=at>%=lo!E&VSZ z77vOC#QowvagVr5+$ru5w~O1vt>Tn8DQ*+@vwMMJRt5D_lbMNUE)r0hqztbCTHX4Qh=;|4;sJ5LxKG?8?h<#3 zJH+kcHgT&sB~FSP#c^?ixL#Z*j)-f;A#t_1N?a+f5SNR~#3f>{c;tKOfAO$*P&^>+ z7x#&K#9iV}afi5F+$L@nr^HEdqc|>Z5Z8^kzqn7_BkmG+iaW&Z;x=)sI3-Ss8^v*PgScK?Cyt0~#UXLExJq0pt`L`t z%fuyOuXyA;>3{LCcu+hb?icrod&FJhPH~60UEC&a6{o~WaicgcZV=at>%=loEEB!AX77vOC#QowvagVsmaZRfFWHUF_q`b%4Kl`kjQ&!XB zz5g-uIoUmD{n4eR+s&O~{Cyn!64$OKO@sXW>ul zG5C`@$^1E_Ie8lXq|P*dF6f>!qjY9yZt2Y0d8IQWx0KGTn_oJ!zPog0!;;dO@uj6R z8&}LbuzAUIPSMk9nj2TuG{;xew1igGw9J}X(_$Jcv?9K%JE6IE=*X)~1zI9zo!?EX zY5K@hv(J+FdJDEU)m(1c#mO64QPVtafo<3EEtt}qv(zHd~0bnqR3gDeIXgdTxhYGH)!g`&iGGQx;Ns(JTGpx9*=(SuIkYO! zZL%$~jbTR1dNoari>JhQHiM~gm90(g@muYBDewK@v*y#w_|!Y}{;jrNwTn$eOIqS@ z)ucj8?Up~a)gAx5wW)<|%HwNx-3%L?;~nZ)MvDvICpm*q!uF=uQKQ{xb zX4lAK(|x5^cbnnzD^uB9Ol|Hm@tOi(uxrj8uno7!WL#2{D%%5*q5Uqp7Bx5R5_+x1 zHtE8e=68m|cJ;A!*PB@P&sewCtQ&dFRrZc3d!eoJvo+1H4()iiEz)kfcW7$Ce6F@t zJj1qi?yIr3{%EYNe*xOIUWHG+LuY2p?qV_znU);uI@6NJEwlyJt(xfP;NgeWBtAZ7 zE!(qQca4~K>Ace~Ded^{#)) zZa9fDTUu?IEo0kBb=gdZv?T4eYnt<>*@B~{UA%idY-XC4>86aaQhSHiT{=2?aPu>+ zlnWlTd0v0qP6&rIe_)#_yvlCKyYeBM+r;$j(;JwDLuWr{k|&CK;!eBP4nFMU`H75AQW*RW1L>8No9)i2F|7F1E?rpq zROrdEo%GX$O<2?t>Yh}}^s!Qwno@>LDN9Xt%#7}|#67l@7Bl}$3fw)lHAm(**WPzv zbN9s|GyT*pFq6Wh@)y|eoMtn!%pEJ> z+D<9=O)6!#u~Pm^tWSM{SQku=72i~2ds*|Ui$mYdZT#+-bJsQhJ^S2E%ztO$^PlkF zqs^D8-Nl!C$1^$Ob8PqA!;a9^N2Y0&DW#80+5gAqZamh~&_3td*|TZgwWru`s#oil(7GnnQ23gx=aO^xEm`o6P2$Y;^hdCZXBv17q3NRG*v8E|Tm%>(H_JAbdGS zlbH*anwey0udOHcs3Ytbc8f{1{rS$&V`)q8%KMxt;j|9>3Co7xw_kg9?ApnH{A<*| zd@I*9arVu2nlOc#Z{H8ik=L)EG{rSNv&W>}f2?_rG0l6enE>Xk-o)3AHSxuv2TC6? z|9{Hv?(@c~`_wn6?mSG7YtNZxm*BIvGSk55>3@VozWjJ{&_!SONrn?cjGcRYrs z{r@mVTc)gOh;EHTh4EqeUx#S7{RZa{{mI%4wztVFSbc~tP1@v1L$t$w$Kx;#p?`0_ z{E^Z2-`F?%u6H|4bT>X>y`2ikHa{9dnvHXL{-w*b?(8>4KSiUbb-{Jow-;SSSdu=wm zdwbjbk9?w(T?u7vn>U9?M z4jufEIT%hIHRIr>VULqBGAZLfCo*p2$~etrtZ7;_DdRSiG9EOM@ug=cw)m<&*p`g% z*&&K*+p2Cdk@0$0#+%lV@t#Q;2RwGKLX1&Y#`-m6j7`dT*F?shT^V;QA3v=&4B*tHcc{MI>`1AqQ$Jlpr@d}YP9|Dn`b6>bT*Y5y ziq}rNWm3iurm!Xc;L7-CTQ6z*6DMVScp~Gru8iBSA>;0oGB!OrK+y`#CF<-llQb8Cl!C=MDcGfaw6>=dgp=FJ8k*f&T`ulCr)I% z)s^uMlTkbE!ATi^GLi9QSH^}lWISt9#*y#Y5_`BZ?zx7HvnFL+JdyFMg-#5;L*L%N zdR5n(l<~@mj8C~TE?hY3YyZQ~q0kumAY*t~{}t&=kDI+5`ZSH{_E$av(Wj9-qh zaW-{j++qzGcbJrM;Y7waa!w4rLvMGi-Z&q<O zw0G!b^Uba!dg+_aa@!I&PGr2smGOo(WV~}y#*-&99_7k->>4tjIw|9q-!jGuSH_uZ z$XGQgV{Rhj$4@&k^bW1Kcl8**GrwC*Ozx?Pj1RdoKDvgCiza1knaFsyE91Fq$au-5 zjDMWS7<6R}ts!H0QpQ~-GEQ}6+-MCMr%%fG^*3zQ7oT#1?;U#Sp4A)Yo!6b^b^ts# zk@0F*#_Mgyl=rarCXML1Uz$`iqBpt;OTSodm-Y^IEe3ZQTiIlL3k%G-xA&gR*eY+d znN@m2^UZud#r(zZ0;Y$|d17+bs9lt-F@Nlj24nqZem}j<7HW>LT2fe}rOmE^^U8N> zn%^+L2AJZ{xp}Pk4No6m+0^F6LHoIGz8Uz_u!->_$!Ye;^+EGJw0xPV;#uz^GE>H0 zD8p8^_QtW&D*t^Afzf?BfHD1~0 z3r=M}y1{<3m0i#_R@u2X+B3@e<4tE9^q8?ao+Nc#FU~q*jg~gMhSc$+@lww|d7_Tr zW2*5U#7gvFC0mI%ZyKw_w>O{?Lu;e|Y$Z+`tHha7iSy^M5?G_9&8{JpC?9XAFH8lU z;c(ViB^EAqT4EJj;`if~IKxx|S5{2LwjYnbbFG^TX*2Cb4kc zSj$A;n~0$k^O^VicbpiW#7edyuNbfIgV&=Wv72D`2+cLS%f;>;;{a!@x75xxr(hRL z<1M~^Y{LsqoY?UGV;fF#!?$52yWuUzH@uJ8u;H)Ab8m2}&FwvmIReb_)%YswnH)p6 z+Chb%!yho=n~ukCU*C<59z#3D{0%>^<80xfbL>{io-{=?uQisTcjzV)(9m=CuxPb{ zj?36;*m7+_RTBk$a|#MN?%H*xT+D)cOur4yU1LF8J?t)MqltpDV+Gl`CkpzfEoiSb z78HHlUC{C`IPIP^R?u^k3i_!jXxS&;DO2oO``E7%IAz?g-F%}rzqRZ#)6ueM#@M3e zXGr?g@${o4eZ}o4YWc4u{k8G*-6g$yJbiOXziTYLHu>e89TwmWcjiz{ZmIX+)HdrL zvd?D|C;yjUU}mM^@gFFTeQE4!hAXzC#|m0gYzK~STVva8JY8ekY&>0K`|h@}m^HTd z$I~^o=f~3jcWe(exnjHUKdZ&oG*-~EGP6TU`<*nt=$qBMw03;aJF74H$@rpYR$sKm z_@cX4U-aFr|8@8j#ulwMe4ZOm*Cx)6r)v{mH=eFdoET5nCO&yAeXNOb+V)?D&+PME zO}s;XwI-f1R?wQ7*gL*x4Nd%!nJDZIwT32saeUDln)u=IMQdo{>&6$YVGlibY|&~> ze8PCTHu0h3>Dt6U8&B6J-gZ1)n|R%^^#9$&!*g9t-2LKeP26F=OHE__*Mp?g6DI$% z@jZO*>iH`#_`m1xGLtRy&ssfy$IE689lN%<{pw3EpIExi>Pur2OFwvFwa5;eSh{%9 zQu7UBt}irjyZ5ZV^db}Wc&#p7ed);)OHW;W>2D^M&NfTUFRQP)FXP{62ClhOeT&(X z&2@%gUGS)htDNSb+gx3-U+_bJTs}HFvB2CuVy75;b4PRIcP*jsChS~rb)__YJOior z?iYInv#D`tin$DDik-52y1lYwuF9+!`^6WxMZ6xv55&$E_-pd`@5B3=#S=FjjBU@` zb)`A9NR8j3VlKY8Ha~IW&5G4i&5AaPq4otfzVW+NrrAP=-gPKDVTHO`UF*&TH>u-AxpnX}Vakj@=oW}UJ4 z6XvJwWcTC?;_j_5Ztv0a{_Eb=;yvG7;+crv%m>YJbMu**6;`dkWX~kzX3jaA znE$Rl$7|-2XBw|GQLe zFU(@)58H_CEQaRW7&KE?@6c`M;5N$&XVK~A!qdcbS8ue>qRC@-tfMDtHuk+^zFo%3 z-tHSyKG7qjR(v&%%w=z#EhxmKjw= z8Fi?aHyHg;uRBofca4S?ReYUw^pPloLu1&z(@Z zyLZHVHa9GqEtWpgjc>n+Vew|ewATx7R(@nwdHuO}mJPi2-&UL`{)E!m-Azk9Qjoi~ z#+uS;@lVWgT)nXRI;WZrowUwqeEMj7+R%k| z^G(l8o3sq~E}6SuCLc|Wjo+rlo|@9G?wY0*2Q)8SFw2BFbIHlwd2{P?Zq-I+RGT^H z*O!>zdLri2I!nx*#Y3f6beBG|#EkQqOPadPJd2BB-OIf(8}D3sF(=MobV75FDZzhmokDc&ug>6%{2aYCwSmkcoH& zFXFKp?+#%#9xG8<_9$HbcJ%6qfmugfVm4d5v`3+T9H+J^pr_Uv$$zJ zT7gZ{xyk55$W7$Lvg?|*^S_JW9YS5iJ@f=wu|#$(F%0!rFw{v7or~Hi$3{U_fJeNh zAs7s+G^~5$yTC^J+CLp_z;AGM^Nk)ry>zsi8$_GV@bIZ-{sj179~DA?!-55=gF7hT zTf~wha$SUu$DkY0-5}I7I3BIe#%9GMq7O}&tQ?{MEB8Dwi~L9pO3xlAzeuFvusNbsPJ$JXb#F<2M0|`6y@03qkGTf-I9el zw!Z3Fj)IyPx=sOZP7eK5ZT4QyAupY+!)E*dE>b`j?0GNrERnYT&g!EMU6j#N5dC$@ zl3y2+L^{q-hO3U!gY`6h@EW$Ru0UReOD*l6h+qnb0VJYfn+5z5)(-?0D`0R4hV($QtB~?di3%J_* z?PO1oYO)(VHOtyiUUfCR4B(mF;4KKj%R#@jUGK!EV@z!3^;^JxRd^Nws$K;HXuibq z7{EB6fDqIfbdQIDZx*JvLnh$JO3KTkKC^_`5sd0Xa18*n7+@feX{8XQ+UI!F#YBRK z1}d>*?xoreV75$WZbi(2x7D%KP!LC}RZ>YzI^V_jzFlOO!i<65D(wMvKE9f@hg`#= z$hWt`8z#6v{GvF2Ns7Dy31)@FZ(~p^v0U(6Qk{s-)94)Uq4UeR?AAqRoV!T3sRGDUJQ0D)$MN8jhg)B<0b7j&6Yl-Wda!3|Ne}j+meOsvKyqjuMI^*RUv3ATz5WZzE}o%;Ye|8zW*;C{pD6jjRt}Zz5To!2!drA!pB(-{ zqNsqsV)1IUNjt+a6OrfC$N|v(@A+;u^jrNFb?@+Z^O$z-O`7WJ#Ds3~h`&YMLtcw9 zXhB`FY}|;ZQ(Y6LdK`pGO}zpy_cndSs|OIRRTv|JDt`C40>70-{AD2w-YIvoEPMbX z^7a%rx`z1W{Fxs+QqrgYCv@`iudz$0SKf%sI`U3$y^HCz7aFL?cI-P`x z{$(pN9r%bPV|`+a5@qUtu|#cb{n}V6r!!6@Mq)L;4~ivL#rh&NHTW)F1XUL;b(RV~ z-Z&I0BG=yBZdym3;?a6HVi+&(p*F?9mRhJeOk3OMWun!|!UC{ssrVnPM>0GW-9PF= zb`U&x(&@>NGDMuar?aXpyZ;J@eI^4;!p33Y1(|S&Kal~4F8?DARmsBc$n7xxBnpv! zuR|2sHZs$preTKsh84`f=!iH|Me)fHSHgddBSCDYgs|C&5HF0)*i6{`atEvaZ`kD9 zym>E#&A5!%e1Z%_h&LDiUt_akWl&OIy^@JHLo#8rCXtahBQbueFn$mQ4WAn}$%voy zc{3ip^XbiR%M3OcdoqyDP}o$%@?l8gm7GFbf*in-0@wo@s{@7r3rSG{oR8I)t}x)t zxQt{Z?iw51S0@u3LNH>twaOZfLUiW#SHlV{#cUG)7Uig_cml<#B|J(uxax2qmssh1 z`-au9%!b@Ga%Cr0VN!Av;-QeJZ$vB*whII3>A+hM#6x2YY78@LlSN%)7cGljR^79- zX;`erDS#zStgiXJXW!Z@YR4q%`qui6d<`5$LNVEu34QQ*+nZ2I;AGn+n8pI}7>pxS z7QoqjpBQIO@-&?58|oxa%uij5oEny$QVSKI_9vfeWWSg_HwyRE9E<2fih$O2>N4S; zs7MW>YO5`6MVnm0Y0v6xA1C%_2;V9vYM?U#PHeu9t$iK5!=Sv?4n}(&_$*%AROI@4 zxU$V2HookV(C!{Mw9dqid|x+_HoLjc>&AHP&2uWp*TI}~+TzrqUI*=_Bbnvv;Mg`h z`0yo{QHBE1ctpjr#^(0wd+Sy;3q-6A_N7PKp#}7^KS!@^5!FF_4Cu782;nlfFfRJ^ z;Fs6j`uQ%$>W~Qex|){lyod;T6kJgogyjg>f@Tag&RN`3_lHem|9+g+8~|1G(E?cd zVnRx5Byg;1%X;h3`SMpqQkeIuIp8Wah+vQy1*M&*kJR+MyZ-dAAAfKKOoxPcLQf|~ zcQtmJRVOVYZ*?6YPM<_ z-g}9rC$mmwl40R7dGN|@%8*;hAj5@c>drFC@MNr#!s_~EcnM{o z&x*@GL&xd4)W?V`a&FK4a{^IP;_4&Q|@lwa3cN z8OKW2st1nP44=1Dd>%GJcb1XQUxNoBK5x7QO?+d8)V6(5zcLFuwA~utI@|OQvbAxr`g#;I} zi3w_LPiQu$KqLhc`9^lT+QkhLr@N}SC9@$2>@^W^FsyQ@=9M{G z^{Wf7B#*h3zHUeY%a@Ym-7ljhd2&`rW)bH=ruZ_A!+geYyc0&&U?|QfOUax__bXh* zYf*~Vg5{fE%Vhb;r7^=uw77#7*aw6hz3}JGqx}3qTj?Eiq6h4kQ629X?igIiWsT3K zXNDm7L%g5?nYj3}T-D)K@U52B_-oc%h8g*-=iqfnTZN6@;WINZ`}G@G)t4<%C#$PD zCKHR{Ss_ew&({Dvg=~O2{iB1-hy+xnMQoN*f543MPbU=4eO0JA=s-TheQq|?EJZ{P z1l1pZz-fvKSwlRA8sLbdl%9}^@E^KjXr?)fN!$cZ za3qG8fu&QR0A*fUV@H5@VVxa-<)2XwQGm(;Xf^=RgU|K=y>po5)V2)(@=qK)DnJzg zG#7v>0BEiUsFZ-{iAY`T;Y8k}&OdWobe)h^2|!fONJ&Z^N=kKm=UJ|`h+nvM z2+ESP#wkUa$UkoH$8$|DsWjBDBJ&0+h{;)^KPh$ON0h=F1Iw4lwt5u~*AU0WIcuWw@wdG5m&9na;nm90ad{REbej%M_wVpq16x@ThUXv6xxNIwJ45r}Ve z=u-IzUk9QVA1}H*_o$2aiYCkG>g@D3#7HO&qb*?}a3 z_Pm1>0#*#-;wZJ%juSn^AK5=t+jz(-W-&PYX@52U7+Dz|43JvGbwsxHA?zY=8aFSQS}}!^y5y-!*`{JdCXG`q+_nd9*oKJB z_s1^fZIRA+p4@}2#8KJ%jyK)QR?$9Z^HG9o*jbUoEP2J8GVY&X;HD|QisO<7S4F=| z9u(&2_~;9#2UF3yY&?}T1=}yr0(H>ALQHAJMksoAxdA#Bvo+uuVq^0I?2M~VhK&!y zv8qR56jU#l4jqC#tX58$36A|fl&`B@_Iy09^oAoH$a3g_5j=IP-92k80zHwzni*B(> zwfMCCEoQ40Kb_z1J}yx$(xcnm;$YQc_yz55(LuF%u>DxoNl+TeZa?J@s}@hTpN=b4 zi)}`=n~uX(i(}j0B3HHOdttl#_z2+(wB)e%_c2GcNVT8x@v6m}?eC*dwODvwyXokn zTFh^MAD>+>l)uz|EqPkCc&z<>OjIp~wVzkVs}}p8+iuFcsutg#)9w~u(Xl5Z`?SB0 zO4Z`2_V+Pawb-%!+#RA?%xXV(cUCP9YMl<1W$2HXs-Dx};O-yHia&@u`@~yL&Aa^& zaH=ae^uZxUKEo*&oIT-zlx}tSjXk+XZ(>+hKO{A}&rcj#$#t(9q1@iaV z0J%j7j!y^1@Z}kd=bR@vAiV&^6!jHJi?dUX&zUS@E`k{$Fy@g zL5>cA+&2VrmD@;od4(V3LvCr>$s)*YLLfiJ%*9Xm8cZ%MEW7(bo@jx5_CA1Igavp% z;kSiAj`4>)ucu58Lilfe%wyU)n;=H3YKZd;suC z{OCP>Aba{j7Fi${+zXI3Sb^~qo(h3{W}pw`TgX3Is{Wt7%wyWQfFQ39fjm3}aw0S0 zo)X>Q2l=!GlKasccL{;~o?)Vo@Zp@0dmwxJL7r)Wd=6IgF_%6>1SYw#HaW{KHuAvrk!pCxqArY53;suTcWp^G4u%E&ku5x z1#%e%MdQ0TvEnEE!4Sxu+^ATv{NxVPgAl%z1@an##BRF)$XEzu??DEJfV|xgvdY!k zw8Q%x8~cVp{`*`2@Jall0X~oi`$1l8fqdg0fc%K}&-kqRqalzLC-^{qnJ|w+_;wb^ z2?QArfjl(?@?TJ3OFVb_K`!0Hl%}0t1ld0Xa>F^O;v@Wlt4$-}|6S6U$J?gq$z zBD?P={HYMgGq3f5bjr-55WbTIauPw_5dt|P1ajJV14FQ! z05+5Z;J+B6_{d&(79jY@zVs-Ah2Yq7n|Tzn`&uAV1o?mlDLC>dk8=q?B73)FPdw1^ zZ*jPSpl|Mf(gR2w>vuEo)6S6qNc22dJ1ba>(h}1DLhW%hu(SQZk`}NZ5z&-0{`m0lGtJ;^IQHC(!{S9(CW zw2N1|eYmulagCzr->~}uir(`|*Mv(Kc%=)&rT2QJ4~9!8dZm-XrDuDk=Z8y=^hyVZ zOM7^wy~3qgUTGv;`W1s6#f|Ub3*>CaFIP49a6fB?N8c%>g(rO8RP&Qr7~icw3fA_*eW&VydVig4*9 zuk_Y%>G@vim~iP}uk?77I{#ppkm;iOsp~3faeS+Up;W9{H;@GPO4YErKc`ZdUk4Zepvn<8+tSMSRptf_VFLp}ZZ3w@s(TyhX>Sr^$PS^Q%kqaLJ0Nd4#oSIP3)TD(iU%SsHca7Y-b#Y=lpUGLEV&DS(K{js+4bgJ zKa^c^*@oEY6zf+9u*b}+LQhP9+5R0&6s?H=kzJfiLf@tDz~8<4@^9%_08_c$C;IUP zSM>M}P}QI9NKP!d9olSq4;gPT)-06GyW3p{O7un(IcX+DD->mQ{*lvl2^XWkaLR8o zk7;KN!?$GQ-=`p-0m_n*?T7N0)N6?=b+!(c9fIn=D{-W<0wwA$pEOd+Mzbs zP640GIhf(Z)D=`L-+lh>>HxE&YG*MRbje_WfQ59m9btrdM%mMc1=cOBoj8f%>k{}D ziG$v;euT9KS;J}Jb`{)`p_b$yC|9ttmB1-0$ITu*80)S+d8P4+Sv^d;au(YAYwNFd6rs4C)J@L8LjmY=HWH&!zly?$hWwA2=?7ykg7v*y(qHm zB{os5ZP45E&e?OK56NNvArjSi%*? z`>+i}8;e8sm9A(Gd}|Kj6|`Lta)1?XO|uFIPI+gr(0>7!FmcxaI^;TI5zIqNI@*l! zg)eh8FX7cyKznh%Y;Ph~xCaxT!}F|V;?XVED! z?weKvG;4vu93c1)z3vG2g6Deke1goxqYX_*LldEPY3IY9Qll9)Fi3I!k1=m%_`1b) z5EjgOgMuJKZX7fZ*7_L?68{;|^au*e9n-F~lrD(ui*IaO_Bm&U%KL*)K)xh&^p&2Q zdl8kpyZls=0y0xYg+R7JF9g15&Ej^P0^mWUw-cmYxtmp^Od5v$P5L$?89%~|)61k= z`?QuzcUa2~8NT`2#9zb%r?AFZeqctuv~*Hys`bXuK)&-x5WaEOgJcikgSxJuWf5iy zS<3vuNoUgh@cJ`*B25We(`fS|Dt&By33Sgor$`(03od$*U1h)EvX@`+l*R6GTo*}9 z|4k{ZEoIpKX;EN$5(?-~AjRR?gC{CJ`VT3!kGzS_)L8m}_)1(_7q9LMz(_6-?( z(K>}*y*ZgHyK7IwxGo}2bs8rO0Kth9$N^AqIjOtXEuu|z2G1w2HM%)$wf5QR(bb;-{7qebD1(rEFSr1cqbh;`{3;o?gA&WJ9D6> zX7ODN(JuceHF;j5QmM>(yLa{~M0m|GUk-)YGOgT~lJC=?BBOQ9$F8ty#`Me2&-GsF zy(vva_N#n$GM0!K)Y8sbkWxT01DXzSCF3G|?UrbksBg+qMQNw72gI^fF+ySJ?I!1d zVFWAd?jbA3!J?IX)qbqT!IO5D;I}Oaa=J|TxOgH1<-|*jc0++ssVc<%#SFN0jGl^? zYeu*1%(tqN+Vz1F+>FlXgI>jg=vJln*yw- z;BT3;o>K$-fWJb>j=xI4;}An+=yyx6-;Jl}eoJ0OJHhHxmimT;wf$Mwc|{<|P`L6Y za5^o+Br~VOzMwG_oAl3QI8;PXM^3Gm=^pKr^5);GX9x7cH8BQI{u$$pmd!p2wJ%V! zq8oh_E0b5XclW2AX?=yIPCClGVitP(20bpMbO=lls64TTdbu$1@ z2yoJtcK!}=a;FW(gSQzb;(Uh*smDcc&SG}7$!Bgw21km)hzu`uqhz3zPldvG%Y}3r zxLH}VaVcgj_TG9_MSd8@RomIT8}QRVg1xohjHd{2$C5H!2g90iAJo0%4MRq^4X*8fdE#;%UMTg~14zILv=IT!Zf^3?HQ7v2ZB>LklFVGZ5Buc77EI10 zJ~TvkJRBuLr_i?oNE<}!A?*-$U!P3KzA@e=ZUoJ#pkndsbjLm9$d6h z@6amhF_ka|C4%~v7V3Y?gnAzr^^hMh)+t^s?7DMr;6U+mGzf;%fuR*7QvH&V9go7- zz+c8ZUH14DABk5vctwVP2Fc2WPO#K_41NvTm*wPMVbl-;JRM-f_)&AfW09_u3V%b)%2{yUHz!VF)#ieMgC&p{XXt>Fu?f_DY z0G)rURXAU(!ue{1@3i_XRew2yH0EZF^U@^(5JNca+^+yyf%xG~2kD_;IxRt+&_>JA zY^cV?x8o6p6e9DZOq5Rtr%r0&=VY$O2i)N)&E%~G2d3!RZCww@vJf*XI~o)Tip6N< z=DX&MGd%;<*czVq!zF<7#beU{@rlAvJq(23x2Y+TeVvYhLOoUxid_iT!R}agm?sE*qz0nHdza^{~F6S$) zp2#boVd>CitA z2RR##V_Uj8SBDJemHgls(#{ULr^yHqVC}inyZ9s!FNMGFW%EN`eP>?z_<>IccXA%Q z9GV?*W+FfX&Mm;XX%_=&KAN$+9k*}`efnrHqfVe&4Ykf3u&xD7%RZ<_p6z+=t<%!sl)ofP5 z!H+OF8K9%J!a*I)>#lM63DK-w+x3r;{SS7<;c`kGcp&@Zwt%8(E3%ESRb4*aw1Ygz zeVn>R;9_D(rvRfFGB0TeX$3-b)f9dKCTifa>-5w!M%f3-Cg=|e?29s0AIUcBBLjGc zm4;Mwy*{`(=J$<^DgBeP8CYhqIb!ScqHVsIyyuPEKJ$W(Aiw4;B^jCC-^VK3>XAFC z$oIGM(y`1EU-V$Z>wETiZ~hDobB2QHY!2pw0@F1J$;fX9_yWK~f!No0#XQ6jckilBqvMyOnN%+z6_lM(`8;qgP)bCBJt#PJTxj3#=+S6RyI^3ahCq4p3 z*KEhGhPRX*lcO|`i%)^mvXlx&kngGu{f=tpN73`JXpxV0&B?5R%Sw9lmsUXK{nV`D zkx`uF`7EosTAe$_$K}+qi-cBH=BnA1tW8TJN{ybOZZnXM6ON{Z`coM zhyJ;izopdNKHTstLIRBQ5@*C(@hHzwV~Sk4QS;0&o8{`QDhKK8^%2 zRf&=XAO`Wt(2AgH#wS%|m23$;nyXG{;W@j6Mt<%}1W0(@bQK<|T+tzDLg+nw0oYjO zu4MLKmc#wDP4792nKAKa3G@hvPx>_rA9u0FJFS3@iLJM=JH}9n-4P9G z#=YvG4t?Id5#kdeKqfLnUo?PD#AqQiwhUwRZj!`Hi048H+f?cKcuNxgDf5ujXgnrM zS#{AAY0R#sf+TV+HA`yi9VJSGOK5XFFcTztvn@iOrri{qc-UCl1LCQyrh?6b(Xlf_ z#(~m`bcHmNZ{F~KO0JrkiKD?>EC3ew!>au#H>v{2LOLlxx%PEsTktot9 z(f)}^K^l_L&(P!1nAKtc^>RwjCTErpUK!svxtAjw} zQL@Mk_ikqHh5|BnMp?~w$S{MK>#Y+dD{O@~4qF@+j)!VgnMF=^P7Yt;nfp2zRh_j+ zJNJmSUd=m{GCJ(-F&2%(w!MwZUlsPy{LuW1z5fx$$IqL5S~t>0F_dH0o@q8=$}2IQ zYpZ-5CM#`~XLW3&TxWS6!icbfVls6saGV|BsPh5V6qOyFt%*BrILBh%wA*O_k>B3S z7l>YrSA}>*I$JLCLfoMsZuX)zzh6^C~EF)67T<;K%+y)vfG|oc%>oi$!Ug$9kCzd0h z?y1OKPEVPNY`DyHy-W(&^*CLnQqnPzz8X?CyH3HgC%g5Q8lscCKxrt0n0qe@L6m3^ z=fS|BWG-G^s9&88Emf7}rX)lJ0_SUFamd)&5Wl)~{@Q(5k!uIDy=1@_&f1;uT0X=o zo5>%{GLLCz23IgBZ9%6BH{;_!E~QAo@l&DH#3M0$e-FinrrvDBI0a){DyN+ju(kyt zcn8d-E6kr5q^Ix<&Djx-%A_@~Ktfh6*;KIT++Fz?h*^$r8ss`-qLX&M-A|xZ^7mzc zZ08mQPFD>Fl#w65T=fot0*IloqTG`XyIVEKt9rjw_0Ot^veR&y5Be}jA%Jq1zl8EzVrdkr)0hNB3gK_+ zyBf)EHx)oXl7}4GOR32i@E>VJw8(;1U|&o!Nn#l z<(S~QkIX0#SVz^B37b~akKj8XkdP$HshapLqo*6qE`-E6p?eKyWq;6=S!WRVRwjne z%d9h^l?RFGlOdLi5Dx+vp>PwOkt&r~>&38q7hx@8%kwm|w>I|>y7^xakni0-3(v*58O*X(p1aKbs z*KqzyX^lYZLIiBBiS`h!*lE5M)$^)EUgs zJuQIkpnFLv=~c1!{6QYiq?!z+&PPc3T{G;mkQKgCE@kJuk?q^yy=<_}ITmzRee$T3Yvcn+kRxX)x$d-Kt9Bsirz z6drao3zwHWlc5z&&pS`^;NdC<)CcmYg_ZH`+O9vK`jS}csEVFBS(jWAb1K1E6}6P!MX{u!Ye?Eo@Q19H zy^E@rK(%DnVBF4^I&TdNDly2|ejEzmt@OFANB36Ej?vIhL+Q$_Y&N(>Hy9)h;N>C_ z-uscjUhsEf$w&(o6djMF$Xlcn~+<=4$&Av`a5B#b77Qok^F zaN>0~N$#qeoQx(z59~LxF*YCthqG@Tv5-teBOP#w*AR?WqbwGEn34A43PxJ*o-tAYShkgK$3yD zg8AQRLsJplb?eG89s$$?!>Usve5H--C(W$tS=bDXK+ z1f~1i%k;Ni7DsK~N1X98`?n)LPcNzrM=~rSDA$mTeAQJk<7p(BlikhRt~;o=Gx;_v zZ+<$K!>P!w4sN9mR_M>3YD01hv zIa%sB3qWBAAwPmDu&GsvTjk8H*6Nr4+(;#FTmz$$gtA`*wTL7%efM*j$Iqinc9vH` z9{ot$;_~N2-Trq(PIxQBXDB*~JK1V~Ml#Y{SJ?vTb3_ns*Io4c9^tN=cFNdwvF=(M zx@6={kWPaCME!X5t!xnFK##GW9DOTq`i|fuaH?R96ER6sEUBYSmE=|0ImmtcfqGlc zy4+ui{M)_I%|r)OE#u2vw`#qr3IXFhF+zA${S&0HYUF33iK(yVe1+QR|Ik;vhX-n; z0Y&qf0s|ev`E0CL2JCXg8BqY(@pV%+fA(ai#CI6e{2`Yh>M8>k_<;%;IZ)sTi?~5SB08H29Lma zvxXfR7{8=rHWhD3?Q8ejT9Y24MitUV$ygl_t{4Bvnh|gjA zvSE8|S@}8P?eO{iImZ%<$8t<2UK))*iCO3JUo2s7+H_o^ z6hXJo>R}#>D0)j=WUu`8HF;`4UBe{=tRhMSHIbf92a~{V|H!8ERrSOg=LAzvdXWkD z7`NVcUcH{C9`R7{jueO0?d`4Eqo~P^uqE(_er%P`JX!#YLrvC7}5tdx1^H0+a@k!ION)9$YvCB4!(2o!?dOoqRi+WqlxA2L} z;X;~vCZp3WOS`MC^N`fZj+UX=Sm7*PHbs|Bi$|wtD<%$%PS2Y@5h%tNlULb!rA3@Y zry}o;GR*&3$KByR( zqxx6!-BGxmcD^_OMY)N3S&mr$lUz^`Img9htj1)l#w0pL$*fEqP`8~tG*)&aMO3S- zlD*^<747ou&WewH3WX8~6)sa`{4z3jxV1eQot9mPG=v0;opo=kn38N>S6W`F3cyzKLW5Nn5#!zyhOO zsV*R@Fh^<5Zf-aIbT|EUH%4<#QGI-o>niYc^byvaQBoo8{J`9$@Wp7(&6rE;`kpSF zpjnc)Kd^Ci;RdaKzeAxsT{sA+`E_AoC((tVY;M%e58s!u)azhGGn-~ml|G08|B{+C zT557Kgl4NrvKO9H{C9?3T(@MA>>f5(2i)MD`OY7EU@EZ3|TD`1i@U71(zA3}Ao>i)k!R&MwG1nJ6I(cLK zq?%h5GBU^RtU!ou#_$Yqo`BAT`eVCUbb)J#kPBl1dNvoR2u zvI@lCMByOFrDE0wj|!cTyD)QKO(zS|q=7euZQxwEZP)|Du(!wzdj?^9bP)cosA^7EJj-|#YTRnYv3YGQr;hl{Loj?|s`?T&x zoEk<8=7TdvuY7SX)M4F;t;Dcilnl6TJpDHn@)~IFb`H${%L7V^X6014wX%o-8;&95 zDjd(3LNPFPH>>P2Opit+f{3?HwUt*V?@Gm>9#AI);_OTiFUky&^r4d~?8eeiW$pjs z@1Q^C`uudXp5W8bdFoH4XyIgW8kI8lRQ(pHexd(RMcI$){A(+r1H{QKGqu`3PhhV| z>05NfF^$*37pK0Q(JH8`xKNYeXmz39ml{>{kXCTDG)F1kpuSYG z?C897bOA|gycv{Xb7nF+&x;%0)0OX*1$g@$YT;qU|JPzaXk+uSHg%a88s$dcfaQZ;F4rF%cm^H&DXwn`QT(_{aAg@ zr)Gv)e}d>lkdMQ#DAP2+(E2{-K57N8PD{1FN?z8vTAYVODi#q-Kf~}7WNgJ<244+F zsnZ`N`^BRRvK7Z9T-&9ilF@@wZD4dk-a|OGlUI5kVBy4bJX*;V!Rx5SFQH%8sfY!+On9yy(9N89y*OM-R2XV?@D}KzXtnb8rn0 za)NP(SFwx4Z`7^+fFNi@AMzKUql-V)#jdLVp|M!T0ymi6S681W)iEc=dBFJEY#AjB zwC8CYMm-)rFByHv)0%^H!(R$4#lIJ;t5p15jpEN!ioeAMMd^fJLVP_o65?xr^(x5M zg$PSwT(si9_@@H79MMD&xBHC#0XK^Lk&l(gU*YsLA2EwZ#+4e(JZOid{EMkW0g4A} zsM#9oi5lt!VW>N3sNDZy27qS8pMNO4uR#7Opkf0slmY`_PxUIuisumSkQMF#cw9q0 z1oayq&Vc+hE&bzqDwa&IS1g%>X^J}vG>RiNuv#vx`$xg7jv*9pRj-05ZWTnagNAxH z>c`>eMQz;-_Z+Pud+bIz42;gxW1$pdAr7}1OGbu)1QyNBo4$5~iYu)-QN+27UNydA zY+%O1lMW-hAXrE&p8JzOKgKQ7snTY=bxrrdh;U=cQr3*6$}7N0U4w%UDY2Y=Ss-o1 zo+3e_t0$*0TBBbry%~cR2&?$pX#>%MLXTPr$)sk=M^3bNzNj1 z$-B9(0VKTA`$MHgImT2y{=3rJQc)kC)gXdIs zTVjwTx8u2Y4_Y@C#j7zH?{=VcDY5pugM4H(%X)w&gR2g5^;M*CeMhyqxcFjco1=-{ za)bVNEeidWJ@~rD6R<4q;HuF-IZoe*CATStmY#_H?g^68zikc+L1&Df3X|Pl28$Bsh*OBd!y8s%O{qdlT792HCFF;>eDDaJd7Z2d$EUBO% zYXKkk#>P$Q(ke6r-Bhw81S*2;MCogI+sG&-DL-S_{$w;&*jS4>rr0<+hkd=SrQOPM zaF3KdhDwrHa3wqyYAX_U8z>d>N7q+`+MTG|Aw@~d5`uM8*Z8x1%8oDQpRBwYSbp?a z$sv?Xk-S*yB~dX&{oq8c+VBbtucZze!myuWu`t`{V=pE(Rioq-E)dCxJe0@glaZ@` zqX^{99(bdMWeo!K1c&8FXq*hoQ}Kf<7Lil<11Bpd_rk+K^L7A##GV_ETF=Nx9kVPmw8CA*!3UQWcv z;FI0hpHj$;F)C!*Ipu4inQF_&o|u=V#W<+zl>GW7vVUz`RP~s)&6d8$F3YH)ty{e= zm<(90mrBSUsfNm6PgKk_O_r+#ISr?>0^HY7A-}|Gy*obb%%`q+pj9ot~K5Q zOkq6nqB5wRel`3W;_QQkdFrXgTH28p?{nIk!ndANrTIUz3I}o*;hPNP_*=p{RfhXQ z$cP|}8Gym;XK6JR5&I>S+Bh8&GAJ6m5*-i!(X2j;brT4!rHX4~G*415$;eh6`I+%3 z5(yfZOLvzJvLCi9`aWHlEQiK9w`@{-yUCRKctnK*r9z@~g~GKL9<>U3;_g>XqLn!@ zc#B#bf(RX*D?^lazGFVgR7g9wV`TjIguStgFz;?MZx*o=Z$mz~boR#X1d?)@Oy*tp zmdAd{|60=I;jNO^0k~ZN=owP+@fK$1Wo(zH+ntJb%BG4I0G0h%pI)RoG-K|? zqjf9P5KpN5&(`@d_%G$9(yWh|>WPvp-)U_e=_lCzT=L zI3+RbX85#3Y9ju{s%$a-3`wNM;tycuV|U7E^|Js!N2;HF@UsX%?QDlcr`CGu{RIFJ zTrW*ZGd1Aja`__S&o7BgI?A|&f0+Y=rNBNJ5Pc8x`U$4fs&z;)m^(#Op0HBC>VYU+ z)xdfb!)kr=xvWkof6_}DRiYLqWb*3wgQcPn$I}zC>qCV5?&}n;N)g2gF6FzMrdl-= z2KgI)2SZ>Qo+J&qD2DT}_#IzN#)8^)pe{KHA)~N3Da^-;9tBs11sT?Vm|>;8_WUfm zq~Vd!Egh{E4yB{D@>gT}`yw`y!(WC~TTleLc#*hJl`9>Ec`ec^KtWN@m@wU1`itQS*YpgU?QT0t7GAW4nh9watM*8;x;Vo<%aO=hSaUJ|4|4XEMxHXxDz zVk0+!EKTxM7a}-yU%vX#fyarrp)ZXck=2R0mcTIS1+7XhX~UE~sRLPt8_&J1a3azd zGC*%-$Q>_nif_nWXEoi6O*OOLOlP2div>8E@P=Y3@Jl<7OD){*h%NPUiqPEy_zd3^ z<_=sw{%nAh$`f_v@=)c;rgF)_rt-y>M@-p|Lisam z0RDvRhxl*QW^!gMD#%as4HDdc@*b7le8of@f|6(VuUOz};2X4Str(;K$i4udG5X|7 zwpO<4PSvzRA>nPEA}5xqrnWJ9L^Ty-bUK@A38vp9NN)dApH)%vuBnucJOffFlLTrl z&U2|IeEf-ctM-%Qxs?kC4;J5sfU4!Uh4R@;San=B>EU5$VJpUOJ&}w+g$M!Hsbyj#LDT?bG0HiHVCV9cWLKqB#gMZMN1g_mDbYm<>+2WlXh-nCESeZ%B%Df%B$oRtImZkAeS*S0Hx_nj1l39N7eOy z=zUa62*5_+G_R7|Z5Qb_uN2vDgh#@PywY#Th*liU-^Jtk9L?8?R|!V((GKN`!&`_BN1c#)=K6#EQgF)mzjS+Pk(B_MT1|rg zaq79m;al02nbMXJ3wE(`qKRFs_=8=n@{lURA554=;!nWnIzyODNSBU75yVQ%JJI}1 zl}^D=a-fq0+q2{mc2?esC+#N_5VzhJ46@Uu@73J9_J!6>5;g<{KMA$jF>_8Ba zH|-fFOOmr#7id^i_Sr$+5V#9ug-qKsP_c`jinqiqXlU4+h1${^IDbJEiky<4XT>oDdtuS6;nu{xnX^k~Sy_k5Vm1=OuW9Ty`` zbMbpyss%dDWv5=9r&uS2qnAc{Y3E+PidX0Br2cx$G8(zmM|Z8*St!X>xnKeaG&gJBsxIN;ZNbE;TP^pWStNT z4`KJo$Pb^p`J8f+qh#SCv=o@2%b4@q9;A**Qza{$hecc{U`=X=>Czbox$7Qh$S82r zJ}+Tmys5wQoWQX%IVou&ll@1zYUr($#JQC2Nni||l_jI$eDoQn!lr@l{8EoP+^4{F zkT;ujWwHaCt3Yup>ovR0p+;Pw12^B|Ae$3=^}Hl zTPC^mG*D?e+%&vFbw;lS-y{S+feL(dd2}&iV-5}E*z6h1lK%)&);2-kz9E21I}fmq zl6BASkoAr0*v3Bh=k6giXE@Mm!Mm-@3#>ZhfK;n<2f%2?NNlUT@NvOj<{>kok!{sI zn1|rrXyx8j^mQCGxUKRPn2fbmUi^`VORiWD%#Ttq@T32FH}1-o{@ii+7Skq z&cH({u8u{Gz`BR-ppYHlp75CdTcrPv)PG0IUxLtImHUHhVhXvjR@pe}&XNtPEIozh z(Jf6+VbX~Ivnb)-QKVxhVQ)cF?OBZ_qUv%r32i#i%O)dRed1Dq*CeJs7O4OzSJxYv zu;gpK-C2Jt>4g`FOC!avUn$%?E$$D4U&_OHb z>?2eCwM-8eA|00*e}&Dh%=l<*o`4x>9h+P_#AM`4PxFJ=P%FBFok}aZgV)aKoK_*^ zNMp^E1NvAI0q@^95yD5us4LE7ks7~R+^yM_gWqVIx5sg7WioP=pBI_wkDTDIWw=m| z5t_M$;@D_TGc?DFF&S%}W0#0EjvTh8J@VVuU(59HURK-k+nsTU#^yU1h}N;Ge^q$% z)Q7ENlRKtVIh?=ne7yYlcrtR0zm}o0840Skjj&S{r%XmGsx!` zW&<*gFP^stl4g9JP4mo0pB?wOt#o@PRu3$G8Oz9P$=%cWVlP$v)a;$?^;y--?X(@l z?Mw-r#f5}$BsW>|tGl!3mB)mY?$`$u>t1yP&p^I&ERmZ$Eteb41i-J@TV|h^{x912 zxT;u$p7%k}kKS+D|j9cEq1Xne7qp6k8ALZ}`EnLdd^TQVWehu*kN4*wOsw5V}0Rw7|u6A-M)Iz~PhBKOvM4Od*RifPPb zV*p98v`2Y-U7=AEGRf9qx%gX7Z#8I5tz1YUL#dJ_b)p8#ob&X2$CG=+=}QiSyP0NZ z#@c~NxI;mh0t{%?P=1 zdAWWM_${P6E(9~2PnPths(Uxmus+sVw1}2>j}44APvE7C&{WKv;h1b1jR7`w zK%pK64g*xMYY>zIAGmk`y5-}0fzqL$V%QX$z(;cu(Pp)Qw`eY)%I8hf&KN8m!vsp4 zLn%<}WMtg5QE6I+(Vb{6Q(vPNla+#rQ_9&#%~oyuX1IzG4pC!+wJ1#RyL-eG_+|Qb z5J<-US0tQ>K9Gh`a9;zH?;;iX5SMTC-XkG>>vl1@9mML3z07PgWaAZ2JKZUi0_;KU9f|`V}H03pQklOCq!M5-$9_-x(4Xf z91IyoTHo4OO-n~vouCzgal;=ahLOK}J?{Hl8xVofyeCmN!4L&NMPoz8 zi)uP$ERz=z>eSRhU@XQCjT-*T;;qJg@f(VU?~T(Pae0Gr5cYR6LZv=SNc0CXl2W4Y zSn}IT&!(Dh^#Z^vGNtW~Rx)ho%41dxOXstygOQcCm+Vi@^N>sVXxS3BsiYNVrj=3!|LXSd}Eq`KY1vG4Pp!ldY?qs>Vi^v zJplUdU5L0d!uN8Vugdq`R~VAdV`Ne*@=0TUXUQj)!lNsny}8kglFKL`*G5_KRd>oa zp>#^wfqP-GGwQX^7K%kW`92?a0`Q@n^p{fe%jULfiUB``GV@_FVy>cp1mz32zYg`&lHuGU*I!16UVkQMEpYto3eCOz9XEBM6k+fb-ic0p4ZS5tuAbKb9#w zO-ts}w>yGycxG5(eQO2Y;XZg7^=-|!q}0{7T6t`bzS*++tM>nHXtg)4Jo_35z0`^n zbP(Sc6PL)lfFxgW*L0;#xVs9^NO_1i_!Qw#xvBD86(3-1y?J6d?~yN$S`Mj}ndZU^{pq-(7%(i0?S|D>n;qG;XaEYC+Qda4rDKpB#pX;LqvbEt zO=sz5EEA{P;Gw#ijo1-0G@lTZt0qmHEyd=95txlI-2}r1h zUib@iEM%C#@7GAy4m%_*z$TmQ<3wtvXR8ORUqXQK1$%pdvaPTHhSYdmb6` z8oA@9Bp0PXt8;mIIX7-$5tmoP6U7@kOZ&zrEkq5Y8?d*|#f`rV2Xd#8(LCFP9vcj! z8}9~K5L?LiAmcs8aS29ch!(l5FHyugnE;Z@AS}KNe1QI86#)C6xiE;sNv4-a|vXfQhkG_(bNM7|jk>pH)l0*qN z*Me2JA5BW2A@xe6Sibk&g#F@OVje)g|06a{SeOi0Mk`(mW(zD6nD14C;gZy$aO~;V zu{W?e+anPa_BWwNXsj^ROF9}rM+50dwh*7;b;u7~v?_LgZ2j-Ta=)$nu3U&|4)V4K zi1BsY8j>Y2>^>y_q8z?m4+JQO;gw1NLi+j4)o6Jvmm00hqn9EfB#(1su{z*x3czcTi}Fq{LUlp{!$uy2PQJys&uCe5x!14y&sjTP!|kh*s3*|GhDH4dCXzu>Kl80r4T}1>bq0bG^~`{%SAccNKWM&u* ziF#KAX-d?$PW~&Ro(8Mni9k#Tg@ds#DT6@7fg&r@;6)4)aCwoM%s*75_RSrxvkzsD zT$iJ?;iP?}Bf{r80)T^-;VD5?QF7|2;w2|`AF=THhV6=Spo+*5$CyK>?%x$D! z*ALwrufapBl5M`hgHrs8kurfay=5RYEi*1Ily{=zhkv?lCK&wY zseniR9ZHVh(&8~Dq1XX?7UkLP!3?YTH~)*(WJv#mKijjeD$p(p&C3gjQowUE#!a|> z$#;Sxl)>~{5{zRRA0oR~ej>AcuX3Q4VX82&F%)Tsb2+t;oOy&=RrU5;>VGlZHj&Bp zs5X+!&wsz@-@~LJIzD>n*ZJSS~37qf!M@TPS7>ch55x|F;nfTz=bbA|G>6eq?Sh!{{ z7!*sQ#^%!2inUx$auXPx9HA1XcZmXuD#`Yj$mQtc7WGsr*pOk!XRA`>jOuEEXb$t;41Ky(5IP7{% zrFFZvFxL*`Tnv3OQo*IP^F8LG8FV5Lr`2Hm*|p3F5jgI6s%hxR2`~TnY>(+xc;z#N zJAtbK>$nB>RkY7K%8FvuD_4E`GXEd2j=nzC68R9?dHAeYq65Xg5<9v1mt4rkYOsEn zZOP7+GOFdhT$qb9E?b)>4__-{&N!M_SA9pb^HT1zcXk6&(okvdj^;PIei?&Ocg-UN z9y}k9)%auLjhj1sc1>iE!FSje&2U4}(H+NY`{2V8=WNV|4%94qRlv}@2jUW+H9qaGphW@<-5vflf46b2|^CE1ZtvSJ( z=%s=yubJxT-bP>7cKHvtOTc27 zk@nP|zL9phJaVK>lV3O=hMAOfp-0-3wLUAT_q7Bfe(=#=_4 zf&k>Ypggj1RfboZ9z^`V)EX(80ArG(L6Hc4&u3YKLlQNl&12(;h(7^z%>urolDYN^ zNENt|qr`&r)M+P&Q*#33RtZ-tK8IFVnw8P|Ff_NUx21jX7)DnjfB1Ce=->HBT^T9A z(#{IHcy_FH|_~19ydG$NBO4kWN!yd93kz^l83=mjfTX zj&A0DCO*on1$(5_)J>XV3CGj%j+n!vVzpmqeXFe?6Z8OE?GFq8iPhEzkp>Ivv^_3i z_1t*j^BqE4^|%>A9@LV$yjLxOM=b+O3<&CfJ2arERpwE z!v_TKUKZUa5vlY$rqNm=&wa}EZ_J6%rrwW=1lyinkfkasdK)~#e9eI7sFpTTwBd+o zZQis7tTH;=LGQUbSI1cMkcTBfk685psRo|yeml|N$U$q|A4_MWjN?Q^v8d@wZ{Qg` zQB}tRnEaMC!jm9qt`!~_>x(V4t70{Oz(and-eJk`XFY;Cs<5$EZ^M%IX?1Q=|IP=Z zv?SF;XByIY7Iw4laj{$Ux%4izuD+bFF`hMMpVJBsjMnAdCpSvS6$~2SK@6#dTm@f- zJM1;K+eqV&+3OFN3OtBHQQAYgRc=DX5Fj*5Q#4qOK)fOO?PSA-d(i`-%T8smjz9TF zdspp}it-z?xno`9aoc5@u6sdO@nz=qEg)CrtVDzbR~QoI@d8NnL^uh}fCCXn%6F+0 zgX3_WLlQshPlK00vAz7(VTgztrz&Xxz3v1tBw1j(ZQ&?@VLCCjHElH%4=geJLH?w@ z(P)2xd8F#Hc1Ut`uBt23S%B+rYCWaF4asgEl4$g>SWN@j8h;3^7CE;9xs`qJC~u@- z@E5v+pUK(8P~2zFFXj&Qg%PqNjkyCJbQlUP;2Z?`-1xfOO(oSQCVp4fbuZ$IJ$2(z ziW}P$(Xnrl?4)^urhijNMhtAD(n{~)Zj-Y9>+f<6T^g*69hZ1^^}kpXJ``p?xPDg< zK-c+6`LJN@w=-6bfJ`$ONWQq+unz>1o=px~>>U4$-dKDIonX&lN4>VR$}xx(9=$zl z@Mp;s1BT7F_WSiGKvORW9ws$fUl2TDg^<($5VYhjN#~131|}U8b!hDu-%p`oQh}+A z28jwzfmI7G2(F?qWut&^?f3m#4Ft8G@QaFU7{rQSf3e;zhl;12U(|DGL2xUCWNJb1 z+6({6g5Y&e*&=YoXSw9(FJ=upGVUK7cL5cm&e~%wFv1GC3LY3;>*mTk|LF2ZDLI<#T8wG5Rs*RNU)QfnW#Ni}(lRw+%C zxs>)$de9oB+8WQTvDGb;DLDR-03R|{+6|T3uot#+xZcqlImQjYsYZ#<1*hS@s2_gl zN?MwRUlHxLmXo3R?0TiYoZK4#a|YYmERjCqSO!iA^$<_kxT;YGJ>!-*vGTQ}fR4=6 z($1CQ2)yrUa`C~Wzf8zfwaB0A5_`VA*mL<=_O2q&Q~!wb0oN}x>!+sptGCz{7y~wE{};}E&Oxj>clS!-?{e;a&XR(h`y8={ zoh1}@eN5J<4DczmPd>vDaUKvalW}Bgiu=d_X@zqS3gemK!F{0kZE@~@p?tyBz*JLS z#rc&-`3*1-Amd9_j>{kOmVJ3#*})PH00S2O!nTD;b^?=wtdTEz$=n0{|7u!1EF<)cfUD<^3KLHM~eKr4sn7*x=ZBx3G=|WN+p!6{GZ&P|744j|RJwI?M zz56a7rLU^THYsfztG=yZbphmWV>PTQh}C>GK?}L8F;nN zm42-DnHR*W?+Y%kKKEmFsd^0Xsz2S9?V*%66|?X*?LMsNq8Dd=)Z5vr-?lM)lWP51 zZZ4^5**RA8`yi%puwEO^@sF<+G(z({o)68Sm3lB7d55pmoux+3Nr9t*+uCHT$^mlE z+ptA4vY)?pTf0;)FV*bAkn4v8MC-U!g0XGcmO|L%w#vsL6ltrx4$)Phya2L+>nMQ% z;64(%W;fS5j4nXEa@?V>uU;ud0tlc&V_$Q5rL2P}kEKjWF_l}FmId%oJETSfmDxb0 z+*TC^Gx{#@pOFQG8dL&GCH_`59-|Ucm5>^b8&u*8Q)SWlQzp&7skk%#os?JFQ`bPr zfav^^L(p_K=6e9a9QXL{_*+Fw_{y__TqPDOxMAPx;tO~Nf+{&>DV>Wm`6}X|Vt`b) zDPMBcLqe=lO!xr3T1V{PUBkyn&m>1F*bw=<{E|%X&da4L5MVywB-HaGv$sYDNaro7 z26l50qrpz>B)qd;lZ& zHod2c#Hj&LVXhYDNY4K#HiE~h5=wU=m!3q zcJ9aEfINGwKW{^F=mx@(4;LxWHzT%QnYCZj4yK5)i7L7PMgB2I&eVf5zW5*3Rb3Y` z6&Vxsvpp274!xkFsOm{|MBewR6LK=BQOB|HAkz%848+uqp}6FEsUaCCFoUz5t@mVH zRUC0XzAs?Z3JqEiSTGZ%Q2P#+3aDX=2~*Wfb`m||?a46T8D4)N*$>txnnK6{k}~Il zm5u3}jLY@r`5>nI|8-1{Y#r0xF3E`LjYLc6axvYD+zat^w>B^>MHp$%9(`6i(&_eA zeHBP|N0#0J(C_f!a& zpi%FaRASBnOMGKRkA7UjZLKQVH+m&XrZFtwjZyNcDctVGt=s``k&e#fh)G7LC8D#_ zQQnO&4_IHCBs#av%IG)v7WmBU_2GUJ zRBVb=72r=<^c%v_RoVKM#Tz%lX2)A5=FN!UxL3SoyzxPrcU^=KYoD3I()D>-jJtEc3mvBbq4^hLRbKZ!>jUM-nJ~?kIB1@^S~qN zVos3gCQM4(OZ1FaJ)-AQhWvu>>Z|6&C(Y3`{}7~ku0`{>D-_M$PvPHawL%ErB9Av@ zr(*q46Ure(R3}!I<@*4C+}Mczq{X}-34Ig^_yDwDZfW(UG=AE?=BjxevEXNNOENfMt$>_XzLnno0t;VvJSo$H?H$@G044^2;J1T_15ai#c)GI;$?PmPY z^;qRF%+D~6u>6aMKVWal%Yl#;dPJNtcLAHsxdV6psUrgw5|r!?5DYF=}nn~=cH2F$5 z*6iWp%mJ79XvNsDkk&1cxECn%eMqRII@wKif?J;OeS_)H)EaZEojBS9&&bpR`~3fB zgO^|z9R^q1Huy56n=;wpVe0*6Z1A7RPW?|dxWTf)_-)(ZO($*E2EPSI(Yg)p2LO<@ zZG&$b)20nR7vWHQ%~2Le|6goyK5(b9l%2@G8Eo()FS|DQu@AHjeg;4OuWj(954E4@ zt$>pu`oFNjyE6LmW(s2{jH=kT@t`qer%}ykm;JC@6D;$Kslx?8$ck&)4ty>!?a3Fs zbZHJIUw+$76n%Z``jNgj`QmUPMemwC`ciUO@$xh%x{n?^@&>Qvdx*O3%E`XoO-N+ZH~#uxIU(Mce#w6~QIQ%?gsD?k+_tGr%YUR3VDM zMtvsPL67==pPO5d84A#QGw&D3+;Vg%A(0fcdRS^^!QNxEsaHwW7{o!Jc!v#-8A#=9 zu6RR|(hKGrYn=13o&ZI28L4-Sn+Anp==<@NPGkd)udQ#qEx_z9L#dLeQ27FFsHXTk z?xPD+Ou-r*ki-!l{dZ2fqPJ-9;jv*>0FVCQVSTGPntviA0XGrM(Okmxoj*sj9L^o+ z*HH|woQ2<^e8Ot1XQM{O9L*u%yp>O2#&znt3W>-U^QxDh^S0HWH+yMhcv2lR-_%Vz z%%7LZryW<8UW=N@QOZ-i<Ew9J1;xkXpIi2dx14ax?(vrBq^>YHo#HKn zi??dpZlzSev}q63KD%ib4FPlBNpCTh_y`n6Zb4!*yL@Hoc=mz*N8|4$F?^rJSqtLj z4gm0NPgP;RpY!si#xHr3w^<86c1hluHHM_7V>J5iB)@*5Fnw?H-c0hV)q8({DHs^| zm*n-6er~z}$BxUmd1lID;X*OzrLVuKW1<@Tz!)i?vRKeB=^Tq+RhAu#N6RtYNRh!1 zZW(s>VWjF$;HI6gC_YSPb)&p#lOy64>+)WnMKERgjaSMWix>T%ZH5;_X?75$BMnLe z6iO8~O0$Vlg@w{=pj2U@bgDwB)vZlLOH>cZhS8Cf`jeO} zC8Y{IoB9>!$J&`A0gZE!q>193MRW>~p915`^@1rYv-VU~6LJrbMt6zHe!MV2w1l_G zSxtIbR8_+s$6Gqe9Yn=jd$$QS4Yn#hD3!8Rr2w$~Jf!`-7}X>@_J$DF*VQ;Zq3^V< z7Bc<(k7%X8%Z&@{m11$o)aZQaw#>*|?IA?oeqWZ)mn$h){fX_gvjbM5(DjTc2m5uR zuRam)0GEs`{9LfKO7{d$2bVP*uS7^6+$2g+X#u?e^S8mscO@5dFel}+@mQny97+cu z(MsZ)CdDJ4q_!}*7hlYOvnKXWs_U5KB4V7F*cBNbA3~*^vV^}xoHxyZ4jG**wvfqz zIgPh;pyhR`ZbpQKWAs}Q8BFt!EC_8m=jGQ}v?;gC+m6cL!#f5X#_CuJy3FQz;wJKF$ z`_`>?5_H126>XVeW9|PV?n~hFn$rK1w$Y-MFfFk*_E4oLT8fmuylANsYN>svR3&XK zrKF{=S4>d^H8P`!WylOF3~fsF4P!}d4Ygz_Zp4zYjEqtK-|utIx%ZrV@B1b#zt4X@ zqj~SWXL-)EKhN3J^J4j<+>g@_`sLSAg$wT^@TORc1?VRTMAhQ$QK^6F8wPg43}M>} z7seHjagZgIYa6VG230YleSpRlr4Wd|Rq#bF)L3sdRc)k-3hZGZYjy{|76y(JzYI@| z?_(HeL#qPV73acXiVrhprlit12Q#daxj#`S;}L$gt+NUzgQ)p2C-KyNCCXmCq!y!= zsV(2jir7@%`Uzx)64dCLZ^`E!*Zd#a(p_K7*S7TOskSX$F|p`_yT<|o+BE+4?id#s zky33?QR>~+70>ZI0Op_ctzx%QiK0|_vDj1&!?&q3;ekUzQE|z8V^c3s?_+E#y1@TG zYWtui-kMHbqOIvA_yMlYVoe2^QENK4Mnoa7rk6#m={b1wYi04Tl||lJbf~bFKBq11 zctHd7C4K;)EVfhw6t<K{ zQWJ_vv|$^>nSQnH!nedRmeln4%0r-5#!Kv%#ge{q0Gi8bNw1d)S(u%G1vbJkQkkd) zRe+96NxXCOfeO&ow50nGpzc^wGs0&?;VVmO-rbLP{}-0jw11HFsVu2^cL0#mr6o0m z2M~ke9>!bJC-HqvE$PPl$6Hd<_Z_#PZ`lSFSkh0=3M{E9cT?T}2TS@afcp)WbQQ*K zS<>|opJcV9f1Zl6)n|6ND@07LN=NEHBNzzfrs%w2t5qX{g@l($yf0Bgx?u9TJ@eE; z7S1+SY>84HN_3@FO2ImhXf$1xy4Pqe_5!CWn#S`etvMaBp&B7e3_^fZfr*8I6BK?WUH%G+b%tP)Y^#Q+*oMcUQ;3eE;Gt#x zZr1QvryBG!nIq>WhLg|=A)@!x@|`ZhDgCf@SDR0G*EIp3b*WO7V9 zTr9hWxuLOpIxU7UbO20sRt#ahA7i2j-+geqFp zlPyHj*!HQ_YSLD+#5X4s77$2IS;u<#zX&AY=;(bjTRYvErSeVS6=zqb?54o7BRQ%; z#JLkgOcM(1TBVaa{ zz<)z1U=dieR+j!N*#EhWWd{^;>>lz2_>b$EY8=CB+n#>N3Kp>1b=28MxaAT-D2TMZ?4vK*QBK3*xo(j4{Z8!u4_o+8!zzW`Q@~Gfu_39k`su*}{ zRlf!D?-V*k*f+W#&89f#)}aL~0b>K1qrpIXQemsB1Qw}qEik0Yt8Z&DOm&NY!i=2e z&)z%Xx6^*Xv5^W}-3&sahO?7yI+nCq$ka9u99Cnk5_IRc$a?-b2E+E*M$>S#%Nt6@wDqjOL0x{3enfEwz3mMs9>)nG{ zo0y)g39zh#@mA0RnTX+bf<0bMt_|{Z&9Wy9nRn3JShUQppmNSt$CI8b8888vBV3)QU zP@TgL#4BhbkSTB$<(XF;FmmxPXlSyyM`AV)-OA`h+Gl zAOiR{LlIB3x8n3l2h)0#xU2?2JmUPQTfc>&toOgxTQ%Y@P-7s6(wrUFI|xl%oE*5S9HJN-kxXTV1{g3#Rdx-Am;2(xLdo0YWI+_gtE2%)>9# zr)Ua%E%Yws_$;U1O;)||&Vsj*zsbf&RgEQt_kd(9|7cEp0s@_bqO1?!HpYSs;%h-B zY&R{)@qe`}$OMR-MgLf;X&He;h!j|1I6vz$Itbe%<8!%6dgraMWPsdX~mzItyX z&M6I@Ns2LdN1NQRy|fq6CNq&{b@376DQ~M?SknzL4tHvW<)t<+B7Mu&FLsF;r& zVGh+=uoe2!r$hY2HCe+GErqvpADEn=wb4i@-W6C=Rb8+XR+bYnbN7~UwUEiMS;jxI zlr8K}bvAl3th zKAfND&mL`eJRyOoQzekI81(XISszgg{EZhYLh^b` z6%`S2z^lr_;g~3W3V5r!NF41-;Zcl>G705(-44SHFYRK10sStQeo1b0nepn7I!LC6 zXreSFQ*u_I~qmOxNw3u~lY^n(+#Q6P;NA`br7v zD=*;t#Iz#xdtzINgg=Pw{6PTEzTz)C(1)-QfCEYy+u8u!>px9hwE(}(YpFsxb!@@i zH{e?*jiZyX@ja2KB&-|KxW=YyJ-?H0`;6%9c#c2?5d^bW_kR(C2fakY`j^JvhImWf z1smJ_U0zxJ7yqo_K2lW;wl6#?y9Ooo97t*nBsH@07R!vmVD(^E(y3mH%GwE{hw?-& z_Fr#RCa;NEenJg70uZ$_-fi4#K%uUh-js)(tbPJNaCgrFNFOk z(NjI<0mwYmMxt4r(F6rD`4(zgIX!hb)rV}+6uANjiTaVE{n_~r$4KXO5bqX2t~8$U zwxk1rp4lqP-E`zsO0n~FG1RyU-j(;B_)E4%r=0-^u5VN%Z;iL;XOLM= z%`0R)`m_Es9lan|RB)qwip>=%s}^YbHMVlKaAJTAF=@T%`MFkZeOMK38trMEU~8Io8S@ zxhv~)caLl3;;2{RQ!g6n9=C&I`*P@pBalI~y)hMY0f5R57=91Zk!3CWwO6=O>qFz@ z9i4bN+bE(Do|9QUkxOA>qPy=ATL%6ZsaXslJn>n?F~NBvVrz;~8=4jVh&+Pr<$}4z zojpPx3ELQkHef$uQtq@o8Slel(hlt*4Dg+W{~jeTkq>vmU;VMjv_Dcc0G>o!$c|$v+++Cv6#=sD=y_@gpK{czT0_|kIMzD4yqhGBDiyWmy&h1 z3sO=*!Zjx^U{$F*BFIz;2Gr@R6fK+OmFS%Gcjf>e14=D@lubvsDtE4hjMP^eA}4r! z+?)a-B=^K`H&h=0VT1=@Biq-D+7tTtObwE_I-2h%z$RM|h3hp zLIemG<+#ej406U>1+}I49(TYgDv@p8*6lwz1TJ`u&2q${Tc>kQr zdU?UIu!n9S4GDI>hAYX;pDud@dQblWTL`dVhzG+u$&w;lBVZEKlXxY>9Mi$e!GLu@ zYj}_JItQb#!{}=<`Wm~%AkupIZY$Cnft(;@hAvWFj!5fCnq#_tZlrZ1krs`#9-szQ zi!6X6dWLiyGu}s&`JP$_x~=alalRwAACTQ69X@b1+r~H%dHEe) ztpqME#Y+t_!&`<5i(hZuM z8~pa|-Nc#8}la9kG>aH{)G4jL6|I z$OiyOs61coHYQ-;JwNuE4nFg0&I@9%6G3~A>EoDTV-?C-4Ut{#f>reG7|_6tcXdjH;q z7=r)odi1+rBcCjf-iWm{3m~)3a548@q<~d_bZ>dtdwWq0-0CgrGZQZmoR^`x1C?Wd zp{|hCv2jr8nt4E)RkQ20Bfky?4!|lwYIw{{V#QfIvNyR~E7S``sKm58HuRVyLp>|n zXt;(A5MpK>@w7c$Vmm>E!xjq<5~9T}nsLYn-jq~QHf$OCiTo7r*4_TE+$b~>&6nCu z1I*Dw#@Xr?&-3HlHF^|V`{ zou)c@q@Rq2Oce47n80l=>dQI2*aJ?XXomLAvlMtwjcmo^_4j`TKF4Xi2XT{Kqat6!b&PiZ7n`VewHe zTbPaW9j-rl|7`pd>(m_!(UDFkB)Bxg`~2)l+gRZhS0?}A3ERvlkeziu&Mei zF07-~uONGd`x3dK*^A08YT_U`-eM`>%udU_PjkK+ zDns!`{9k+v=UkmUqbqeq1L4#s8q ziPRj$U~D>2(1=(cdnIx1r+XH{KqB#m>#^c&tS{%{ow-LKF4>R`(KDNXs>-f4Bf&4y z#=eAYcRq=4WHHn3BFdZv?;+*IWA;?%5Ky)t=X>FA#=BNpQcevERyLu8h{m&6Kq!Kc zLXtn^7Z?f7r57CG+&>x>I`j_nLx}#3YlmoHzDMc*DMjj$K7{y^!~Dc&~f( z{|ZXqqW^lFj9Vl652d#pqW@S-oVfHqiIIh(|KsQ4r>uhL2L0EPmg49?4<7vQM*kx& zkEcqMez!t1+4Sokwg(~=Y+?HpN`s`iS6AAuMaUAy_Q!BlU2MFkQ0EgBR4bD&aU zvamJOQQt~bAoEc`5nhSLyWkQu$aN*btBpA#S$@XDIG9P5RU+TAq)x0(ft)~_SxYBy z4)2k$8DR||$0b!aXin8#nMTc?6D!|#|F|>DG(qR%fCKwWtzD9I7 z_c)Hmro)de=XZk+v&2Vd8-@;58>`{iboe7veJBzD-90*-{iD#q8xo?!H#JkwFbi3SI6AB;&SoLK@8WE0XbwwTbOUGklxM-a!P!Nm1jNC{*$Hs$)&ys}|3`3E zF*t;?!{{&tyn6*jBNdCYtC6<*J#n`95O!tr*+pxwF3$S(Fl`u|4H}F$A)IYbH)9R> z?APxFXG6j`>n+nrKA+9bClIkXTZNwEaF%;B+_Ch9&TY(l`ObaBs=K+7wK?XP^yx^@ zCr3=$LqbHQ*NpJZn7r4x%i_o3u1>usdVy`NV@Q^cPYrv^4f8=2!IT zu5BH(hX$p4yEA?s=;%0g*JcZ2Ws@R~#>`F0eG-ioTqx3rqZgV4L`{N$m_Al1JLR^^0xvy#=>%Nmqi_bs09$Q{y>^r)z$S5FTyj%_Ks349^M}(ULgnf z%+5@LRTm7K$Va(>T|Q*I3*i9)fSO?DR(|q8EAb2v`p8EfQk+;+xG=FOg`@sd2YqKu zU$o1W{qXPbt3vzmDi>e^woy;dN{bF!%=jDEXYZJ9t{%grOfx9gf>^6oFUd`mL(XzOo3;MF#(d;T%`!u!d$}4>w$5F zr0t;Sl+ra_O|P&!-n)`#Pq)aS=ht5euHe!qqG!3cE|rallwj+Ebp@06ZD%mKwcu2~ z)gqptgQGDy62uyvLOU660bH$!KbgO$w2VcYOUj(Z3+kjJ@=G%HT#_dtq@FC3KerCU zA6wvL6~Zj}m_})Jl2vtL#?vLJ{S5xg^S%4OO9&z*c=*=dg|n_&2R)=`u}v&}s_I;? za+rP`oi2k{E?+q1Rjtk@O3zZjkSZg81$#nfYaCfK8LFwW?qAL3aIIYGn@Q} z%gtRh->#*2hQUMifa|ZIt`OP!?=Q4cc&p^+c=A@d;FfI+N36fCFIzVTILBCfXaeCt zM&crsnAwg!yb4zFdVSZ3?kGM`P+?cfrF8^HGlmJwT5?qY_uwH{XE#ky=Clr^IYuwhjmQaRLA z=1p_NNfjzVO+jNzajq(*^(8(lBSmRz7q7o8E3ljtd1kao0h8 zRcArr%=IBt{PD*D@}rm9Gys+?{9{jf)1zV?oU&JOaohJ&t9Dl7r5d(HOb){qRU6nY z3SfKTe_`0RRInZI!`33d1nzRcMiHxl$V>vix4p0W!tsXs#Xs>vq%i2dEZlv^G#@pi zBHjN*5)lO}N(^d_3%Y-Yi6Rkk>An3_`#}%(4RM97!QK?~_Kw8yHX(+p-X{9JwaYIV z>^bO-PV0>1aOrNc?qO26hfzTf6_Fm^AY-Hp*7bWx1wE`KYf(EO;F`gl8!yXu2UhTS(+! z(d_OiK8I}e-!OyDAU~xGp5DT6$X)||;dz3dc5o!=?;t$aYNyN7$|9rUnQ zq=#Eo53g-z#xpwT;U&qF%2>eT?fR;^H|Yg%1kh5|1H1|!S?@{UkGIM_*hjTo;kW#) z{1VtNQY{Yy*y4cozLLkK`j7nzXVpOlmEJ#H_h)~vTzho&wkdSo-Wxw|p9~m$)q8mW zQIZgG?Yla@R+iR^XMHk)JGi=yG6>}Y>?BIrhkiP_LYB>Ey!HFwce>!AO%0ApgOS{a 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¨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%0Dn)0-$>?{t0Irk#a5Aj2i#pF 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

p0 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%0A5O5N&w1X1E7|~X$F^4Oa(RdL0XPy6cc62R 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

)mQDn~uY>}%x;eYIMo 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

weSDrkUe1V;Fq9aBAAUA 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 literal 0 HcmV?d00001