On Wed, Oct 12, 2022 at 11:10 AM Richard Sharpe
<realrichardsharpe@xxxxxxxxx> wrote:
>
> Hi folks,
>
> As a result of a recent issue and MR I suggested the use of tshark to
> extract some info but it does not work.
>
> I suggested this:
> --------------------------
> ./run/tshark -r ~/SNR* -Y "frame.number == 1" -Tfields -e
> "wlan.he.action.he_mimo_control.scidx"
> -500,-496,-492,-488,-484,-480,-476,-472,-468,-464,-460,-456,-452,-448,-444,-440,-436,-432,-428,-424,-420,-416,-412,-408,-404,-400,-396,-392,-388,-384,-380,-376,-372,-368,-364,-360,-356,-352,-348,-344,-340,-336,-332,-328,-324,-320,-316,-312,-308,-304,-300,-296,-292,-288,-284,-280,-276,-272,-268,-264,-260,-256,-252,-248,-244,-240,-236,-232,-228,-224,-220,-216,-212,-208,-204,-200,-196,-192,-188,-184,-180,-176,-172,-168,-164,-160,-156,-152,-148,-144,-140,-136,-132,-128,-124,-120,-116,-112,-108,-104,-100,-96,-92,-88,-84,-80,-76,-72,-68,-64,-60,-56,-52,-48,-44,-40,-36,-32,-28,-24,-20,-16,-12,-8,-4,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392,396,400,404,408,412,416,420,424,428,432,436,440,444,448,452,456,460,464,468,472,476,480,484,488,492,496,500
> ----------------------------
>
> However, if you look at what Wireshark displays for this frame, you
> will see much more info:
> (attached)
>
> What tshark is extracting is the scidx numbers but not the phi and psi
> values following it.
>
> Has anyone seen this issue before? I guess I will look into it soon
> but was interested to know if anyone has seen it.
I forgot to mention that this is the code that is inserting the phi
and psi values:
-----------------------
for (ci = 1; ci <= nc; ci++) {
for (ri = ci; ri < nr; ri++) {
int angle = he_get_bits(tvb, bit_offset, phi_bits);
proto_item_append_text(pi, ", phi%d%d:%d", ri, ci, angle);
bit_offset += phi_bits;
}
for (ri = ci + 1; ri <= nr; ri++) {
int angle = he_get_bits(tvb, bit_offset, psi_bits);
proto_item_append_text(pi, ", psi%d%d:%d", ri, ci, angle);
bit_offset += psi_bits;
}
}
Sure, it makes sense Wireshark displays more: you asked tshark for individual protocol items; that will show you only the values of those items.
proto_item_append_text() only modifies (appends text to) the display of a particular item. The code above isn't adding items for `phi` and `psi` so Wireshark doesn't really even know that they are protocol fields.
If you want to extract `phi` and `psi` separately, they should be added as items (this is good practice anyway). Else `tshark -V | grep SCIDX` or whatever (ugh).