diff options
author | Martin Mathieson <martin.mathieson@keysight.com> | 2023-03-07 13:59:53 +0000 |
---|---|---|
committer | Martin Mathieson <martin.r.mathieson@googlemail.com> | 2023-03-07 17:03:08 +0000 |
commit | e6eca895012bcaa86dd9ad2c6d0c8ed595df1d64 (patch) | |
tree | 9782ecab4d0845a8bad4ca1805b78ae6f7d26483 /epan | |
parent | 921a9a0ea2f7c60e7cc4ce049fdbd64753411118 (diff) |
ORAN FH CUS: Misc usability changes
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-oran.c | 77 |
1 files changed, 37 insertions, 40 deletions
diff --git a/epan/dissectors/packet-oran.c b/epan/dissectors/packet-oran.c index 491711b99c..d78790b7e7 100644 --- a/epan/dissectors/packet-oran.c +++ b/epan/dissectors/packet-oran.c @@ -33,7 +33,8 @@ * - Not handling M-plane setting for "little endian byte order" as applied to IQ samples and beam weights * - Really long long text in some items will not be displayed. Try to summarise/truncate * - Register for UDP port(s) - * - for section extensions, check constraints (section type, which other extension types appear with them) + * - for section extensions, check constraints (section type, which other extension types appear with them, order) + * - when section extensions are present, some section header fields are effectively ignored */ /* Prototypes */ @@ -1002,7 +1003,7 @@ static gfloat decompress_value(guint32 bits, guint32 comp_method, guint8 iq_widt /* Out-of-range value used for special case */ #define ORPHAN_BUNDLE_NUMBER 999 -/* Bundle of PRBs/TRX I/Q samles (ext 11) */ +/* Bundle of PRBs/TRX I/Q samples (ext 11) */ static guint32 dissect_bfw_bundle(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint offset, proto_item *comp_meth_ti, guint32 bfwcomphdr_comp_meth, guint8 iq_width, @@ -1107,6 +1108,8 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info * guint32 numPrbc; guint32 ueId = 0; guint32 beamId = 0; + proto_item *beamId_ti = NULL; + gboolean beamId_ignored = FALSE; /* Config affecting ext11 bundles (initially unset) */ ext11_settings_t ext11_settings; @@ -1171,7 +1174,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info * case SEC_C_NORMAL: /* Section Type "1" - Table 5.5 */ /* beamId */ - proto_tree_add_item_ret_uint(oran_tree, hf_oran_beamId, tvb, offset, 2, ENC_BIG_ENDIAN, &beamId); + beamId_ti = proto_tree_add_item_ret_uint(oran_tree, hf_oran_beamId, tvb, offset, 2, ENC_BIG_ENDIAN, &beamId); offset += 2; proto_item_append_text(sectionHeading, ", BeamId: %d", beamId); @@ -1180,7 +1183,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info * case SEC_C_PRACH: /* Section Type "3" - Table 5.6 */ { /* beamId */ - proto_tree_add_item_ret_uint(oran_tree, hf_oran_beamId, tvb, offset, 2, ENC_BIG_ENDIAN, &beamId); + beamId_ti = proto_tree_add_item_ret_uint(oran_tree, hf_oran_beamId, tvb, offset, 2, ENC_BIG_ENDIAN, &beamId); offset += 2; /* freqOffset */ @@ -1570,6 +1573,10 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info * case 6: /* Non-contiguous PRB allocation in time and frequency domain */ { + /* TODO: Field startSymbolId in the message header and the fields rb, symInc, and numSymbol in the section + description shall not be used for identification of symbols and PRBs referred by the section description */ + + /* repetition */ proto_tree_add_bits_item(extension_tree, hf_oran_repetition, tvb, offset*8, 1, ENC_BIG_ENDIAN); /* rbgSize */ guint32 rbgSize; @@ -1987,6 +1994,12 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info * case 19: /* Compact beamforming information for multiple port */ { + /* beamId in section header should be ignored */ + if (beamId_ti && !beamId_ignored) { + proto_item_append_text(beamId_ti, " (ignored)"); + beamId_ignored = TRUE; + } + /* disableBFWs */ gboolean disableBFWs; proto_tree_add_item_ret_boolean(extension_tree, hf_oran_disable_bfws, @@ -2841,7 +2854,7 @@ proto_register_oran(void) HFILL} }, - /* Section 5.4.4.13 */ + /* Section 7.5.2.13 */ { &hf_oran_frameStructure_fft, { "FFT Size", "oran_fh_cus.frameStructure.fft", FT_UINT8, BASE_HEX | BASE_RANGE_STRING, @@ -2851,7 +2864,7 @@ proto_register_oran(void) HFILL } }, - /* Section 5.4.4.13 */ + /* Section 7.5.2.13 */ { &hf_oran_frameStructure_subcarrier_spacing, { "Subcarrier Spacing", "oran_fh_cus.frameStructure.spacing", FT_UINT8, BASE_HEX | BASE_RANGE_STRING, @@ -2864,20 +2877,16 @@ proto_register_oran(void) HFILL } }, - /* Section 5.4.4.14 */ + /* Section 7.5.2.14 */ {&hf_oran_cpLength, - {"CP Length", "oran_fh_cus.cpLength", + {"cpLength", "oran_fh_cus.cpLength", FT_UINT16, BASE_DEC, NULL, 0x0, - "The length CP_length of the Cyclic Prefix " - "(CP) as follows, based on Ts (=1/30.72MHz as specified in 3GPP " - "TS38.211 section 4.1) and \u03bc as defined inTable 16. (\"NA\" for \u03bc " - "shall be replaced by \"0\" in the following:) CP_length = cpLength " - "* Ts * 2-\u03bc", + "cyclic prefix length", HFILL} }, - /* Section 5.4.5.1 */ + /* Section 7.5.3.1 */ {&hf_oran_section_id, {"Section ID", "oran_fh_cus.sectionId", FT_UINT16, BASE_DEC, @@ -2897,7 +2906,7 @@ proto_register_oran(void) HFILL} }, - /* Section 5.4.5.2 */ + /* Section 7.5.3.2 */ {&hf_oran_rb, {"RB Indicator", "oran_fh_cus.rb", FT_UINT8, BASE_DEC, @@ -2909,37 +2918,25 @@ proto_register_oran(void) HFILL} }, - /* Section 5.4.5.3 */ + /* Section 7.5.5.3 */ {&hf_oran_symInc, - {"Symbol Number Increment Command", "oran_fh_cus.symInc", + {"symInc", "oran_fh_cus.symInc", FT_UINT8, BASE_DEC, VALS(sym_inc_vals), 0x04, - "Indicate which symbol number is relevant " - "to the given sectionId. It is expected that for each C-Plane " - "message a symbol number is maintained and starts with the value " - "of startSymbolid. The same value is used for each section in " - "the message as long as symInc is zero. When symInc is one, the " - "maintained symbol number should be incremented by one, and that " - "new symbol number should be used for that section and each subsequent " - "section until the symInc bit is again detected to be one. " - "In this manner, multiple symbols may be handled by a single C-Plane " - "message", + "Symbol Number Increment Command", HFILL} }, - /* Section 5.4.5.4 */ + /* Section 7.5.3.4 */ {&hf_oran_startPrbc, - {"Starting PRB of Control Plane Section", "oran_fh_cus.startPrbc", + {"startPrbc", "oran_fh_cus.startPrbc", FT_UINT16, BASE_DEC, NULL, 0x03ff, - "The starting PRB of a control section. For one " - "C-Plane message, there may be multiple U-Plane messages associated " - "with it and requiring defining from which PRB the control " - "commands are applicable", + "Starting PRB of Control Plane Section", HFILL} }, - /* Section 5.4.5.5 */ + /* Section 7.5.3.5 */ {&hf_oran_reMask, {"RE Mask", "oran_fh_cus.reMask", FT_UINT16, BASE_HEX, @@ -2951,16 +2948,16 @@ proto_register_oran(void) HFILL} }, - /* Section 5.4.5.6 */ + /* Section 7.5.3.6 */ {&hf_oran_numPrbc, - {"Number of Contiguous PRBs per Control Section", "oran_fh_cus.numPrbc", + {"numPrbc", "oran_fh_cus.numPrbc", FT_UINT8, BASE_DEC, NULL, 0x0, - "The PRBs where the control section is valid", + "Number of contiguous PRBs per data section description", HFILL} }, - /* Section 5.4.5.7 */ + /* Section 7.5.3.7 */ {&hf_oran_numSymbol, {"Number of Symbols", "oran_fh_cus.numSymbol", FT_UINT8, BASE_DEC, @@ -2973,7 +2970,7 @@ proto_register_oran(void) HFILL} }, - /* Section 5.4.5.8 */ + /* Section 7.5.3.8 */ {&hf_oran_ef, {"Extension Flag", "oran_fh_cus.ef", FT_BOOLEAN, 8, @@ -2984,7 +2981,7 @@ proto_register_oran(void) HFILL} }, - /* Section 5.4.5.9 */ + /* Section 7.5.3.9 */ {&hf_oran_beamId, {"Beam ID", "oran_fh_cus.beamId", FT_UINT16, BASE_DEC, |