forked from osmocom/wireshark
ORAN FH CUS: add section extensions 16, 17, 18, 21
This commit is contained in:
parent
1f59c18769
commit
93ec018c09
|
@ -107,6 +107,7 @@ static int hf_oran_reserved = -1;
|
||||||
static int hf_oran_reserved_1bit = -1;
|
static int hf_oran_reserved_1bit = -1;
|
||||||
static int hf_oran_reserved_2bits = -1;
|
static int hf_oran_reserved_2bits = -1;
|
||||||
static int hf_oran_reserved_4bits = -1;
|
static int hf_oran_reserved_4bits = -1;
|
||||||
|
static int hf_oran_reserved_6bits = -1;
|
||||||
|
|
||||||
static int hf_oran_ext11_reserved = -1;
|
static int hf_oran_ext11_reserved = -1;
|
||||||
|
|
||||||
|
@ -186,6 +187,16 @@ static int hf_oran_numPuncPrb = -1;
|
||||||
static int hf_oran_puncReMask = -1;
|
static int hf_oran_puncReMask = -1;
|
||||||
static int hf_oran_RbgIncl = -1;
|
static int hf_oran_RbgIncl = -1;
|
||||||
|
|
||||||
|
static int hf_oran_ci_prb_group_size = -1;
|
||||||
|
|
||||||
|
static int hf_oran_num_ueid = -1;
|
||||||
|
|
||||||
|
static int hf_oran_antMask = -1;
|
||||||
|
|
||||||
|
static int hf_oran_transmissionWindowOffset = -1;
|
||||||
|
static int hf_oran_transmissionWindowSize = -1;
|
||||||
|
static int hf_oran_toT = -1;
|
||||||
|
|
||||||
|
|
||||||
/* Computed fields */
|
/* Computed fields */
|
||||||
static int hf_oran_c_eAxC_ID = -1;
|
static int hf_oran_c_eAxC_ID = -1;
|
||||||
|
@ -504,6 +515,13 @@ static const value_string interface_name_vals[] = {
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 7.7.18.4 toT (type of transmission) */
|
||||||
|
static const value_string type_of_transmission_vals[] = {
|
||||||
|
{0x0, "normal transmission mode, data can be distributed in any way the O-RU is implemented to transmit data"},
|
||||||
|
{0x1, "uniformly distributed over the transmission window"},
|
||||||
|
{0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************/
|
/*******************************************************/
|
||||||
/* Overall state of a flow (eAxC) */
|
/* Overall state of a flow (eAxC) */
|
||||||
|
@ -1594,15 +1612,45 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16: /* Section description for antenna mapping in UE channel information based UL beamforming */
|
case 16: /* Section description for antenna mapping in UE channel information based UL beamforming */
|
||||||
/* TODO */
|
{
|
||||||
|
guint32 extlen_remaining_bytes = (extlen*4) - 2;
|
||||||
|
guint num_ant_masks = extlen_remaining_bytes / 8;
|
||||||
|
for (guint n=0; n < num_ant_masks; n++) {
|
||||||
|
proto_item *ti = proto_tree_add_item(extension_tree, hf_oran_antMask, tvb, offset, 8, ENC_BIG_ENDIAN);
|
||||||
|
proto_item_append_text(ti, " (RX eAxC #%u)", n+1);
|
||||||
|
offset += 8;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 17: /* Section description for indication of user port group */
|
case 17: /* Section description for indication of user port group */
|
||||||
/* TODO */
|
{
|
||||||
|
guint32 extlen_remaining_bytes = (extlen*4) - 2;
|
||||||
|
guint32 end_bit = (offset+extlen_remaining_bytes) * 8;
|
||||||
|
guint32 ueid_index = 1;
|
||||||
|
/* TODO: just filling up all available bytes - some may actually be padding.. */
|
||||||
|
for (guint32 bit_offset=offset*8; bit_offset < end_bit; bit_offset+=4, ueid_index++) {
|
||||||
|
proto_item *ti = proto_tree_add_bits_item(extension_tree, hf_oran_num_ueid, tvb, bit_offset, 4, ENC_BIG_ENDIAN);
|
||||||
|
proto_item_append_text(ti, " (user #%u)", ueid_index);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 18: /* Section description for Uplink Transmission Management */
|
case 18: /* Section description for Uplink Transmission Management */
|
||||||
/* TODO */
|
/* transmissionWindowOffset */
|
||||||
|
proto_tree_add_item(extension_tree, hf_oran_transmissionWindowOffset, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||||
|
offset += 2;
|
||||||
|
/* reserved (2 bits) */
|
||||||
|
proto_tree_add_item(extension_tree, hf_oran_reserved_2bits, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||||
|
/* transmissionWindowSize (14 bits) */
|
||||||
|
proto_tree_add_item(extension_tree, hf_oran_transmissionWindowSize, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||||
|
offset += 2;
|
||||||
|
|
||||||
|
/* reserved (6 bits) */
|
||||||
|
proto_tree_add_item(extension_tree, hf_oran_reserved_6bits, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||||
|
/* toT (2 bits) */
|
||||||
|
proto_tree_add_item(extension_tree, hf_oran_toT, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||||
|
offset += 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 19: /* Compact beamforming information for multiple port */
|
case 19: /* Compact beamforming information for multiple port */
|
||||||
|
@ -1746,7 +1794,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
|
||||||
/* Subtree for this puncturing pattern */
|
/* Subtree for this puncturing pattern */
|
||||||
proto_item *pattern_ti = proto_tree_add_string_format(extension_tree, hf_oran_puncPattern,
|
proto_item *pattern_ti = proto_tree_add_string_format(extension_tree, hf_oran_puncPattern,
|
||||||
tvb, offset, 0,
|
tvb, offset, 0,
|
||||||
"", "Puncturing Pattern %u: (", n);
|
"", "Puncturing Pattern: %u/%u", n+1, hf_oran_numPuncPatterns);
|
||||||
proto_tree *pattern_tree = proto_item_add_subtree(pattern_ti, ett_oran_punc_pattern);
|
proto_tree *pattern_tree = proto_item_add_subtree(pattern_ti, ett_oran_punc_pattern);
|
||||||
|
|
||||||
/* SymbolMask (14 bits) */
|
/* SymbolMask (14 bits) */
|
||||||
|
@ -1786,7 +1834,12 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 21: /* Variable PRB group size for channel information */
|
case 21: /* Variable PRB group size for channel information */
|
||||||
/* TODO */
|
/* ciPrbGroupSize */
|
||||||
|
proto_tree_add_item(extension_tree, hf_oran_ci_prb_group_size, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||||
|
offset += 1;
|
||||||
|
/* reserved (8 bits) */
|
||||||
|
proto_tree_add_bits_item(extension_tree, hf_oran_reserved, tvb, offset*8, 8, ENC_BIG_ENDIAN);
|
||||||
|
offset += 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 22: /* ACK/NACK request */
|
case 22: /* ACK/NACK request */
|
||||||
|
@ -2880,6 +2933,13 @@ proto_register_oran(void)
|
||||||
NULL,
|
NULL,
|
||||||
HFILL}
|
HFILL}
|
||||||
},
|
},
|
||||||
|
{&hf_oran_reserved_6bits,
|
||||||
|
{"reserved", "oran_fh_cus.reserved",
|
||||||
|
FT_UINT8, BASE_HEX,
|
||||||
|
NULL, 0xfc,
|
||||||
|
NULL,
|
||||||
|
HFILL}
|
||||||
|
},
|
||||||
|
|
||||||
{&hf_oran_ext11_reserved,
|
{&hf_oran_ext11_reserved,
|
||||||
{"Reserved", "oran_fh_cus.reserved",
|
{"Reserved", "oran_fh_cus.reserved",
|
||||||
|
@ -3412,6 +3472,58 @@ proto_register_oran(void)
|
||||||
"rbg included flag",
|
"rbg included flag",
|
||||||
HFILL}
|
HFILL}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/* 7.7.21.2 ciPrbGroupSize */
|
||||||
|
{&hf_oran_ci_prb_group_size,
|
||||||
|
{"ciPrbGroupSize", "oran_fh_cus.ciPrbGroupSize",
|
||||||
|
FT_UINT8, BASE_DEC,
|
||||||
|
NULL, 0x0,
|
||||||
|
"channel information PRB group size",
|
||||||
|
HFILL}
|
||||||
|
},
|
||||||
|
|
||||||
|
/* 7.7.17.2 numUeID */
|
||||||
|
{&hf_oran_num_ueid,
|
||||||
|
{"numUeID", "oran_fh_cus.numUeID",
|
||||||
|
FT_UINT8, BASE_DEC,
|
||||||
|
NULL, 0x0,
|
||||||
|
"number of ueIDs per user",
|
||||||
|
HFILL}
|
||||||
|
},
|
||||||
|
|
||||||
|
/* 7.7.16.2 antMask */
|
||||||
|
{&hf_oran_antMask,
|
||||||
|
{"antMask", "oran_fh_cus.antMask",
|
||||||
|
FT_UINT64, BASE_HEX,
|
||||||
|
NULL, 0xffffffffffffffff,
|
||||||
|
"indices of antennas to be pre-combined per RX endpoint",
|
||||||
|
HFILL}
|
||||||
|
},
|
||||||
|
|
||||||
|
/* 7.7.18.2 transmissionWindowOffset */
|
||||||
|
{&hf_oran_transmissionWindowOffset,
|
||||||
|
{"transmissionWindowOffset", "oran_fh_cus.transmissionWindowOffset",
|
||||||
|
FT_UINT16, BASE_DEC,
|
||||||
|
NULL, 0x0,
|
||||||
|
"start of the transmission window as an offset to when the transmission window would have been without this parameter, i.e. (Ta3_max - Ta3_min)",
|
||||||
|
HFILL}
|
||||||
|
},
|
||||||
|
/* 7.7.18.3 transmissionWindowSize */
|
||||||
|
{&hf_oran_transmissionWindowSize,
|
||||||
|
{"transmissionWindowSize", "oran_fh_cus.transmissionWindowSize",
|
||||||
|
FT_UINT16, BASE_DEC,
|
||||||
|
NULL, 0x3fff,
|
||||||
|
"size of the transmission window in resolution µs",
|
||||||
|
HFILL}
|
||||||
|
},
|
||||||
|
/* 7.7.18.4 toT */
|
||||||
|
{&hf_oran_toT,
|
||||||
|
{"toT", "oran_fh_cus.toT",
|
||||||
|
FT_UINT8, BASE_DEC,
|
||||||
|
VALS(type_of_transmission_vals), 0x03,
|
||||||
|
"type of transmission",
|
||||||
|
HFILL}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Setup protocol subtree array */
|
/* Setup protocol subtree array */
|
||||||
|
|
Loading…
Reference in New Issue