From 9abb63057ac267f34189221840b6b6195ff18775 Mon Sep 17 00:00:00 2001 From: Mohamed Mahmoud Date: Thu, 26 Oct 2023 11:29:14 -0400 Subject: [PATCH] WIP: dbg DNS over TCP NA fields Signed-off-by: Mohamed Mahmoud --- bpf/dns_tracker.h | 8 +++- bpf/flows.c | 2 + bpf/types.h | 2 + pkg/decode/decode_protobuf.go | 1 + pkg/decode/decode_protobuf_test.go | 4 ++ pkg/ebpf/bpf_bpfeb.go | 1 + pkg/ebpf/bpf_bpfeb.o | Bin 92752 -> 93368 bytes pkg/ebpf/bpf_bpfel.go | 1 + pkg/ebpf/bpf_bpfel.o | Bin 94504 -> 95160 bytes pkg/exporter/proto.go | 2 + pkg/flow/record_test.go | 2 + pkg/pbflow/flow.pb.go | 70 ++++++++++++++++------------- proto/flow.proto | 1 + 13 files changed, 63 insertions(+), 31 deletions(-) diff --git a/bpf/dns_tracker.h b/bpf/dns_tracker.h index 571526958..004d3db03 100644 --- a/bpf/dns_tracker.h +++ b/bpf/dns_tracker.h @@ -9,6 +9,7 @@ #define DNS_PORT 53 #define DNS_QR_FLAG 0x8000 #define UDP_MAXMSG 512 +#define EINVAL 22 struct dns_header { u16 id; @@ -71,13 +72,16 @@ static __always_inline void track_dns_packet(struct __sk_buff *skb, pkt_info *pk u8 len = calc_dns_header_offset(pkt, data_end); if (!len) { + pkt->dns_errno = EINVAL; return; } struct dns_header dns; + int ret; u32 dns_offset = (long)pkt->l4_hdr - (long)skb->data + len; - if (bpf_skb_load_bytes(skb, dns_offset, &dns, sizeof(dns)) < 0) { + if ((ret = bpf_skb_load_bytes(skb, dns_offset, &dns, sizeof(dns))) < 0) { + pkt->dns_errno = -ret; return; } @@ -97,10 +101,12 @@ static __always_inline void track_dns_packet(struct __sk_buff *skb, pkt_info *pk pkt->dns_latency = ts - *value; pkt->dns_id = dns_id; pkt->dns_flags = flags; + pkt->dns_errno = ret; bpf_map_delete_elem(&dns_flows, &dns_req); } } // end of dns response } // end of dns port check + return; } #endif // __DNS_TRACKER_H__ diff --git a/bpf/flows.c b/bpf/flows.c index 219660e64..fe69375c7 100644 --- a/bpf/flows.c +++ b/bpf/flows.c @@ -97,6 +97,7 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) { aggregate_flow->dns_record.id = pkt.dns_id; aggregate_flow->dns_record.flags = pkt.dns_flags; aggregate_flow->dns_record.latency = pkt.dns_latency; + aggregate_flow->dns_record.errno = pkt.dns_errno; long ret = bpf_map_update_elem(&aggregated_flows, &id, aggregate_flow, BPF_ANY); if (trace_messages && ret != 0) { // usually error -16 (-EBUSY) is printed here. @@ -119,6 +120,7 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) { .dns_record.id = pkt.dns_id, .dns_record.flags = pkt.dns_flags, .dns_record.latency = pkt.dns_latency, + .dns_record.errno = pkt.dns_errno, }; // even if we know that the entry is new, another CPU might be concurrently inserting a flow diff --git a/bpf/types.h b/bpf/types.h index f9790427b..1205da3b4 100644 --- a/bpf/types.h +++ b/bpf/types.h @@ -89,6 +89,7 @@ typedef struct flow_metrics_t { u16 id; u16 flags; u64 latency; + u8 errno; } __attribute__((packed)) dns_record; u64 flow_rtt; } __attribute__((packed)) flow_metrics; @@ -162,6 +163,7 @@ typedef struct pkt_info_t { u16 dns_id; u16 dns_flags; u64 dns_latency; + u8 dns_errno; } pkt_info; // Structure for payload metadata diff --git a/pkg/decode/decode_protobuf.go b/pkg/decode/decode_protobuf.go index e91797914..d02bd3f78 100644 --- a/pkg/decode/decode_protobuf.go +++ b/pkg/decode/decode_protobuf.go @@ -95,6 +95,7 @@ func PBFlowToMap(flow *pbflow.Record) config.GenericMap { out["DnsId"] = flow.GetDnsId() out["DnsFlags"] = flow.GetDnsFlags() out["DnsFlagsResponseCode"] = dnsRcodeToStr(flow.GetDnsFlags() & 0xF) + out["DnsErrno"] = flow.GetDnsErrno() } if flow.GetPktDropLatestDropCause() != 0 { diff --git a/pkg/decode/decode_protobuf_test.go b/pkg/decode/decode_protobuf_test.go index 717faae54..c10281fea 100644 --- a/pkg/decode/decode_protobuf_test.go +++ b/pkg/decode/decode_protobuf_test.go @@ -319,6 +319,7 @@ func TestDecodeProtobuf(t *testing.T) { DnsLatency: durationpb.New(someDuration), DnsId: 1, DnsFlags: 0x8001, + DnsErrno: 0, TimeFlowRtt: durationpb.New(someDuration), }, expected: &config.GenericMap{ @@ -349,6 +350,7 @@ func TestDecodeProtobuf(t *testing.T) { "DnsId": uint32(1), "DnsFlags": uint32(0x8001), "DnsFlagsResponseCode": "FormErr", + "DnsErrno": uint32(0), "TimeFlowRttNs": someDuration.Nanoseconds(), }, }, @@ -407,6 +409,7 @@ func TestPBFlowToMap(t *testing.T) { DnsLatency: durationpb.New(someDuration), DnsId: 1, DnsFlags: 0x80, + DnsErrno: 0, TimeFlowRtt: durationpb.New(someDuration), } @@ -441,6 +444,7 @@ func TestPBFlowToMap(t *testing.T) { "DnsId": uint32(1), "DnsFlags": uint32(0x80), "DnsFlagsResponseCode": "NoError", + "DnsErrno": uint32(0), "TimeFlowRttNs": someDuration.Nanoseconds(), }, out) diff --git a/pkg/ebpf/bpf_bpfeb.go b/pkg/ebpf/bpf_bpfeb.go index bb10a1591..7f6ceebd8 100644 --- a/pkg/ebpf/bpf_bpfeb.go +++ b/pkg/ebpf/bpf_bpfeb.go @@ -25,6 +25,7 @@ type BpfDnsRecordT struct { Id uint16 Flags uint16 Latency uint64 + Errno uint8 } type BpfFlowId BpfFlowIdT diff --git a/pkg/ebpf/bpf_bpfeb.o b/pkg/ebpf/bpf_bpfeb.o index 12b4001b8b2cf7624ef8cbbdfb3d4375a891a48f..89e13aa6e719e262b2b471db45700e7634ebdca9 100644 GIT binary patch delta 18232 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 delta 17494 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 diff --git a/pkg/ebpf/bpf_bpfel.go b/pkg/ebpf/bpf_bpfel.go index 8556d19a5..0f869406b 100644 --- a/pkg/ebpf/bpf_bpfel.go +++ b/pkg/ebpf/bpf_bpfel.go @@ -25,6 +25,7 @@ type BpfDnsRecordT struct { Id uint16 Flags uint16 Latency uint64 + Errno uint8 } type BpfFlowId BpfFlowIdT diff --git a/pkg/ebpf/bpf_bpfel.o b/pkg/ebpf/bpf_bpfel.o index 5e001e1de72aa19a7028827941ae9dc6cfda9b3b..a5c7b2d5effc0f2d53b973dab5c3b3aff6ad5593 100644 GIT binary patch delta 18193 zcmeI3dvsOBy~k&tB$5L}^UldhLQX=+R;ZmqyXr zYnbDhS2O#VuVzMW2+`WB6sJi9U+MfMzU0cwJ-J-LRu^!p%RITPWY)D<#Y_#MQktB$ zgnX;Pxi2B#er5v6j-!HP6s_GXZKJiDIKG+Vh>XdOLbSGp zt1U9V4b4fE&DrX_bV0s->;I7I6PzmQNp*|l$W%3alp76fw6=%kep!5ixI)G>XXfIm zV*eeg(@`rb{lrwM78g0&CZyP^=8@_PrBK&6Qk}%SRpnhhnOU_YQay=T4Pc~tBC{IE zNVTd3pBtjcULn)faIBH8CRRJ6%nLu|eU9aK6*kY8e|8 zwTi|%eYYCK**qwutRDg1q*Ey!L{;_JX|jg1q*Ey!L{;^n&|jZ8mKxRjs|fQF2@GP8r{ZVrcQS1v}0O z=WE${&Q+5dvJa>hq|TOUuJJt;te4~Hu&7J(~IM9a|vIr+J^Q^VQ7qWntMR*c3FPrdW zW?mLyKQk|z@I>Yc)#>3p<{8XWn5Q%6FqccVqv2c@l(9iJbC@~ET*92i%%dC*Fi&HB z2D6%6(QqcSnv~IS8gmiZ+aelHXF&mHkiuNZoXVWfd=YbqIhi?=xtKYFc^Y#%a}hJ` zjy9HYcq$80*`Sa)g}H#4W-r-?n0Zx)^O>ixeg<9K|(#2Rm!(T4aRNTJWFF z2Hg-z{im}D(R{#C{in0}2RWN*Gu4v)hdPS%@j1DLJCXPxzjiZe`$33bxQq)+=$Ie}917_blO>QUgDBv_a za~(2z0Ws}B`XzAZrwZbF?+CwVrKqFG7T#dD)TTS1DqjnC|I6}u)79aQDo+l6mD=iX zm{bQikE5^1OH-$T@$#J&bIR1gZtwXHR0lP)11bNCsTVj-*|Z9Jov^SgR8*^@I-Qj% z=V-8BHrmX;fwoNRRh(N-_^i&}muBZ%R?PWBb%|Y%6hizRGh5p0Hb%bOBg=|b<*R&9 z2O5A?1rkNX_rGkk6UXng=NExGApJiULCODR58ig<8_s=m^Q~jfllZsKd1>y~@*+o6 z_eGO0mTef{jf*n#oul)L{V$=RLS%>+ouACBw7)Bf27n&6@Y#RUCYb>^UUt&nBWg=G zTNNUEKBsPB556U+j-6YA>VS<}%JgPBnh4QwwUkHg;B5J@?MO_uq3qB^N17|c`OLAM710^E~QD4hFibFKZ(leKGeRELgN!<}H6-sR*im}Bj5 zu3k`5K&}Gb>_~?!ESgMxCB*qkCeL>+TbS=WyCCNH76qK`3uDeV5C<2xvMVVG}gzQS@i+u1H`W({+A^&=bc)bTO79J7%9F?k4*Xy{Ji z#IIQCw66%|euf==^metl62z4sQ7Sm@zxF;=@i+ZzZzcKHNmYNJe}$jB?47fe_g)?& zU1r;7)hup%R4u2ykB|P9?DF|Qzc0*__;HeAtTAZ9sYuR=PY`dM?LD~Skp!!*ck0Sj zKHqzmbFitrx9f_>LgnyU! zez^XdR$MfA+aX62>N|)L+|}9i+#ATe0eioEPT$2Ew?7XzsDyz z&u=O5uR~L4k8SDw?Ut`r_`bQ?x&Of#DgU)vh&*Uk<2MDr51f}D%xb)5jVwKpZtSkd zGv5B=>md3aSltX@=0Q$xd?csTbi>er-z|_YMBI4=X};F_I+!e^9@AbUFZA) z(GS--zC*>nQ|p}Yq2g($kpU_ae;3N2PEpqJ<{^MymR{l4`O zqF#-T^>EGwMR?3!?|g8m*k8|zE2JV5iZ$z<#)pgjJ6Um+R1`pQ_j>11D7sj&h7_4o zq3CBxGYX~f3bKB9h41uwXUQWge6Ou{KKsav_U~Z?y?m#yVMFw>cv~e_Yiol{FP~G5 z=UdgAzm(?~@{sWyHlCLl&p#(0i-jN)U%tWlg@q^I@!7PSJ}?z{`0L#T1mQ1XYO+gTdmaInm2!H`Og>EJNZv%6B3r;+Ns}3 zdS|J>9oGXP3`CuC?K>sD7gqP)^-kl&`XM-yU+E==ej8=pis?To-4Y?3gh~H2*pDru z#^37kJt*PQBnSp{%FC8AU!@)ENSQkx#TRe-9ZZ;O2Xf`5bYL zPt@QbP8lq~W)@iJ6HNwZf}5Gs3()#yKGDkD2K)R&mS|^=f&DSt5*;k~76b`TS)!Bq zUE&@~bbIup9(@DeMyNuS^I?C?5;5le#C?_+X8sBIqE<_c7@TH9Fv z!y<46j(o|?vIS=>5nz@r7{>TAx4=H(tR1~k$1KKbsK|T!pxoDw>OTlxXTZLZ&D$v6GY05AiV{C9HxZU6c@E+!;VLuZ++`;_D zLK`jYw?r2UiWb2EpRz=s!G3VR!KvVr1_!|d24{c=4W{(N%xjRpzX5wOHUnzVVH<*r z($PgM&<0J|*vQ}oO0ZIhKJ1OeIt()VaXlGo7h;I{Fy}XHa0&7sVO|3J^jomZnbCd~ z65;i!fDJGRHesDJYki3M9@67LP|EyuaPA&_!8JG&-0n%ghxsS4&ndzxQ*57aVV5UC z4|C4N=z&rU3G-a=v~moI!2$3|gQtQAnYY3|sR2FAydRvp8mmsSEyU*`NN>S1OIAJb z3reun5~T*`f@_%L>!5GNs$pIZCePW;ydPX}3af(o77js4P3|kAnE&X)=S4L6=gtz zGzePRKv$@p`55%GP785>IcF*6#1IaL%nQK9XHWoM=P5tpRB(gAN#G{t9ncqHGfK?F z_)~(%APBsP8fPlDmf-|Bf(#4}ft#5tN&k)z9n5>d7ag+10p`QtKpiT`d>riG0M1hR zzfar(wgXBaIP^2?Wq8t~A7s|caEMt~V3?WwLUB8MKJ)o?Z|KQy*dkk1K(FJF!L*JW zm~{o4m=`REk2q|JJzwZ~)xR?7}_`n^%v)7oM@)>60wKO-g|1XQlRnJwa7D z?bZ62wZ1e*>9v>a%pKpGJ1!yf%8vmPFi z=jmO8W$#MHB-Eja4YZqVW!7G>omqRqJqD8(>@b+TU?;Qof-z?81$&6e3285Qk`1&M z95R@^;0Uw!f}ts@h1v_YFz>HZUa*z<7?`}^0fWg4c7ml7`V9=o3&z-hn7m*YGkHDo zasvjFmm4&g^uq>|ew0~zL6NU2OkCWBNu1A4NIRVX8)z@Mhgo~UL1yg*2SX}D?F9!5 z6l*UyY%qDjQD*H06ANvXKzqSZ;aCmHEtfKDFIdN{yfCdIbUE4bN{K`XOf!R;P>2eV$m2bi^g>^7KI@PH@% zpk$1wc95b}wLm+_fWhP-OPO^Go4|Ay{sDT>Uxj0ahugu!(D_!NhXZiH2B(5!#5N4% z8yI|Amtjx>gKmRogHIYvuZsiBD^Wn^Q7kZn=~OVxd>i!haS9k=K2G*Mm>p$U(Nx2~ zLJ)WkKL|AEfkOtTfvcFeULr*KG90uFo)4}wI0$ZH);-qD+>P|r`QmbvOp(@8BBAc%itt%H*+O2 zEXEvYnym`h2(Gx>63qsefZLfJ=&KIE5gBZUA?Rem%P^RA5M5+&Ik>J`6)@=vWYCEo zGdK)xX4VyGVO|dV^g}poGs~k&3=JA%TjWB}!-6j&K~fLi!kJ$I7xZIQFuxDZIf++7 zkDk6i(kMMdOQ6piL>Dsa7M^6@ z0)0BJl17-1gOhMGG|K#Aa7wOEB;%5f%Cof~z=A)MLC7cSn9Hxkaj@Jc8Vt?_H!-h* zepVH3ZkV3~r{FfQgZUM325tjm9_~_Xi;u_v*MTS5;F_y21S@@_Z=tH;&EWhdpBP@E z_)&1uYM&4|BvA`~T8X>xtv-npxA%MW1I*gD4|(*I7ya6ie-NukV3#F622RDQNhGHI|7Q@CVVNYe!3C>@ z2z9}6Fqab_hT~vf4bH==sbZ$|B}iXma3Q#XSvRPO`F5mFISRi3w&}hx{u*>?DRwsq zH2c9F2B&~K4W`pk%;0ozm%)_2o4FAAr&nQjG&mXDw*vb=6-WjF2u>OX`QQPAbHIZJ zQwBrK4O9T;%do-8;1PoZV1aW5l}Gk;g_(E>#$O9^AV@Y0C^fNv*0U~pcxk{1}B5tJ>0?EPxdXCv<4@GJ3ZXR{A;prRVOWK z5OFft?lBBV(9ir4C1}Tx7@Q0q@bD0G?i$$Rgfnb#GI+$p0=-5RSU~n282^AFNbW$F zGh?)5s9~1t{2;E5n7@MzL=0WZEN^nUaPz~QwiXANqqr+${!x*-8|z@Mg+BWj#=p}L zBppMZ%o=n;d1;1Pp!Z3spU0U0FXY)4&m3KJ%Eox%^2=+OnXtBXb;8x~&&8W~>ENg@9AOr^t0U2}}O!_Y79h8B}-RBkWtx;U(T~u&c6j4FGRF$-HBfU_yss)Y-Tc${6D~x4~*FnCmc9_)fDUd zads#kpYLfWnW+-cH#_1_GB<$#2-S@trSI`@Kl8Pdm44L2^vRCW4{>_>V)hpJ0bEod z;IPhuHKuk~xE}be9h!FT4JbuJnnmC?on6D{P_B|e^4_cJ|r4-U*vCyClVy&me z?KAXU?%rwEbZ2Pe1o!APt9<6?<@&@CI8EiR|2-2&Pd?Fwv}R~cVg{P>Q29@6yi_rCaA6NyL*eR{1h5~3Iklm9`}i2t1|lu&YM10nxV-3Gv&RJ zYZmjUUvUdcppN6B14(9D?8okvC03=i%H3aLZL}_RUnS#T$-MBAH{Mp%yD6nmzbMLbYc){|h*SZm?tslGhmRf7=)}<=*LbmRZWsVj22-ktm{ATFm!s)}i z8Q$Q0x;=gS9@}?}m%AIw@NJ_G^NvD?G{UaPnUKpd!wHtt{ht};>q4_lDZZKMLg9MM zP|x-)v?U1PzENfs_`l9AZFW<_R*C;doVL`h4_jH6k~cEL&sZJ6)wvm7;H+_FJ}%tL z_I2(NHZC7a_i)^0(!EpQ-u_7fkPR zW|++KkVhWR@*y})Gn8?K=<3D{Uu1i_F+q>tIo&FpNq;pBe;{9Y=}CteVAs`lNma=4o#jq z{D$Rp{4zr>*R9))R9N$@=HpLPSi3E&+|91EF0r0=H&t3$Gux3kMfm048B^j!&LNHE zY88#if8;(AJUk^JY&B~2XHw&>5zksZd;>}>eZj|&}@S{JGpg_D8 zKl%#=3YzH;6qs$X9#8Za2`rF)ls=bh#)%Q1x5qPm-KIbpQhNHDO@WyFFn!ylpbMmL zyPCo1f>Sc78!g4><0PtLiRV}NB7yGAWRL7k)o9csH1?HYt$49lsHSsiV#sObtrpjwbu9Ld+29hJaRI$Y2`!8fIFQ zo863RbQ~?h4ThK&b*sVGfp0OGW>km4+rS46-VTl#OdWgF!#!iXSt+pPp8jjyH$C_Pc50^oPKq?wo`i@0Gb7FWr(`PIST3_nn z8V@&kxOqHZFWL=30W$9JaLizG9o-)8H@E@%0h5nEywTd?vsdzxrb^Q$v%$kVJbZ_T z4|@2phoAEBbL08=ZJVv<+(UEglR zVvf6n;^aB*T@;7rxZkF@YL4q`M_dOzV*kiol_eU|Zq4)cw7TDhcp|z>7V%cR+ql!3 F^50SqNAmyx delta 17699 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 diff --git a/pkg/exporter/proto.go b/pkg/exporter/proto.go index b8d47be2f..800971dc6 100644 --- a/pkg/exporter/proto.go +++ b/pkg/exporter/proto.go @@ -79,6 +79,7 @@ func v4FlowToPB(fr *flow.Record) *pbflow.Record { PktDropLatestDropCause: fr.Metrics.PktDrops.LatestDropCause, DnsId: uint32(fr.Metrics.DnsRecord.Id), DnsFlags: uint32(fr.Metrics.DnsRecord.Flags), + DnsErrno: uint32(fr.Metrics.DnsRecord.Errno), TimeFlowRtt: durationpb.New(fr.TimeFlowRtt), } if fr.Metrics.DnsRecord.Latency != 0 { @@ -128,6 +129,7 @@ func v6FlowToPB(fr *flow.Record) *pbflow.Record { PktDropLatestDropCause: fr.Metrics.PktDrops.LatestDropCause, DnsId: uint32(fr.Metrics.DnsRecord.Id), DnsFlags: uint32(fr.Metrics.DnsRecord.Flags), + DnsErrno: uint32(fr.Metrics.DnsRecord.Errno), TimeFlowRtt: durationpb.New(fr.TimeFlowRtt), } if fr.Metrics.DnsRecord.Latency != 0 { diff --git a/pkg/flow/record_test.go b/pkg/flow/record_test.go index 8709af0b6..316bbe699 100644 --- a/pkg/flow/record_test.go +++ b/pkg/flow/record_test.go @@ -43,6 +43,7 @@ func TestRecordBinaryEncoding(t *testing.T) { 01, 00, // id 0x80, 00, // flags 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, // latency + 0x00, // errno // u64 flow_rtt 0xad, 0xde, 0xef, 0xbe, 0xef, 0xbe, 0xad, 0xde, })) @@ -82,6 +83,7 @@ func TestRecordBinaryEncoding(t *testing.T) { Id: 0x0001, Flags: 0x0080, Latency: 0x1817161514131211, + Errno: 0, }, FlowRtt: 0xdeadbeefbeefdead, }, diff --git a/pkg/pbflow/flow.pb.go b/pkg/pbflow/flow.pb.go index 16ad2116c..a0ed4ddcd 100644 --- a/pkg/pbflow/flow.pb.go +++ b/pkg/pbflow/flow.pb.go @@ -191,6 +191,7 @@ type Record struct { DnsFlags uint32 `protobuf:"varint,22,opt,name=dns_flags,json=dnsFlags,proto3" json:"dns_flags,omitempty"` DnsLatency *durationpb.Duration `protobuf:"bytes,23,opt,name=dns_latency,json=dnsLatency,proto3" json:"dns_latency,omitempty"` TimeFlowRtt *durationpb.Duration `protobuf:"bytes,24,opt,name=time_flow_rtt,json=timeFlowRtt,proto3" json:"time_flow_rtt,omitempty"` + DnsErrno uint32 `protobuf:"varint,25,opt,name=dns_errno,json=dnsErrno,proto3" json:"dns_errno,omitempty"` } func (x *Record) Reset() { @@ -393,6 +394,13 @@ func (x *Record) GetTimeFlowRtt() *durationpb.Duration { return nil } +func (x *Record) GetDnsErrno() uint32 { + if x != nil { + return x.DnsErrno + } + return 0 +} + type DataLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -670,7 +678,7 @@ var file_proto_flow_proto_rawDesc = []byte{ 0x07, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x22, 0xef, 0x07, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a, + 0x65, 0x73, 0x22, 0x8c, 0x08, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, @@ -733,35 +741,37 @@ var file_proto_flow_proto_rawDesc = []byte{ 0x6f, 0x77, 0x5f, 0x72, 0x74, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x74, 0x74, 0x22, 0x3c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, - 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x73, 0x74, - 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x4d, - 0x61, 0x63, 0x22, 0x6b, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x25, 0x0a, - 0x08, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, 0x07, 0x73, 0x72, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x25, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x49, 0x50, 0x52, 0x07, 0x64, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x73, 0x63, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x22, - 0x3d, 0x0a, 0x02, 0x49, 0x50, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x07, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, - 0x36, 0x42, 0x0b, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x5d, - 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2a, 0x24, 0x0a, - 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 0x45, 0x53, - 0x53, 0x10, 0x01, 0x32, 0x3e, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x31, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, - 0x77, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x77, 0x52, 0x74, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6e, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6e, + 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6e, 0x73, 0x45, 0x72, 0x72, 0x6e, + 0x6f, 0x22, 0x3c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x17, 0x0a, + 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x72, 0x63, 0x4d, 0x61, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x73, 0x74, 0x5f, 0x6d, 0x61, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x22, + 0x6b, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x25, 0x0a, 0x08, 0x73, 0x72, + 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, + 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, 0x07, 0x73, 0x72, 0x63, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x25, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, + 0x07, 0x64, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x22, 0x3d, 0x0a, 0x02, + 0x49, 0x50, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, + 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x42, 0x0b, + 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x5d, 0x0a, 0x09, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2a, 0x24, 0x0a, 0x09, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, + 0x32, 0x3e, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, + 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x70, 0x62, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/flow.proto b/proto/flow.proto index 35803d7d6..bf3209caf 100644 --- a/proto/flow.proto +++ b/proto/flow.proto @@ -53,6 +53,7 @@ message Record { uint32 dns_flags = 22; google.protobuf.Duration dns_latency = 23; google.protobuf.Duration time_flow_rtt = 24; + uint32 dns_errno = 25; } message DataLink {