ORAN FH CUS: add new session extension types to value_string

This commit is contained in:
Martin Mathieson 2023-01-03 17:02:32 +00:00
parent e990b25ea2
commit 6581901810
1 changed files with 12 additions and 6 deletions

View File

@ -374,6 +374,10 @@ static const value_string exttype_vals[] = {
{16, "Section description for antenna mapping in UE channel information based UL beamforming"}, {16, "Section description for antenna mapping in UE channel information based UL beamforming"},
{17, "Section description for indication of user port group"}, {17, "Section description for indication of user port group"},
{18, "Section description for Uplink Transmission Management"}, {18, "Section description for Uplink Transmission Management"},
{19, "Compact beamforming information for multiple port"},
{20, "Puncturing extension"},
{21, "Variable PRB group size for channel information"},
{22, "ACK/NACK request"},
{0, NULL} {0, NULL}
}; };
@ -1392,6 +1396,8 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
return offset; return offset;
} }
/* Dissect udCompHdr (user data compression header, 7.5.2.10) */
/* bit_width and comp_meth are out params */
static int dissect_udcomphdr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, static int dissect_udcomphdr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset,
guint *bit_width, guint *comp_meth) guint *bit_width, guint *comp_meth)
{ {
@ -1401,12 +1407,12 @@ static int dissect_udcomphdr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
"udCompHdr"); "udCompHdr");
proto_tree *udcomphdr_tree = proto_item_add_subtree(udcomphdr_ti, ett_oran_udcomphdr); proto_tree *udcomphdr_tree = proto_item_add_subtree(udcomphdr_ti, ett_oran_udcomphdr);
/* udIqWidth */ /* udIqWidth */
guint32 hdr_iq_width; guint32 hdr_iq_width;
proto_item *iq_width_item = proto_tree_add_item_ret_uint(udcomphdr_tree, hf_oran_udCompHdrIqWidth , tvb, offset, 1, ENC_NA, &hdr_iq_width); proto_item *iq_width_item = proto_tree_add_item_ret_uint(udcomphdr_tree, hf_oran_udCompHdrIqWidth , tvb, offset, 1, ENC_NA, &hdr_iq_width);
*bit_width = (hdr_iq_width) ? hdr_iq_width : 16; *bit_width = (hdr_iq_width) ? hdr_iq_width : 16;
proto_item_append_text(iq_width_item, " (%d bits)", *bit_width); proto_item_append_text(iq_width_item, " (%u bits)", *bit_width);
/* udCompMeth */ /* udCompMeth */
guint32 ud_comp_meth; guint32 ud_comp_meth;
proto_tree_add_item_ret_uint(udcomphdr_tree, hf_oran_udCompHdrMeth, tvb, offset, 1, ENC_NA, &ud_comp_meth); proto_tree_add_item_ret_uint(udcomphdr_tree, hf_oran_udCompHdrMeth, tvb, offset, 1, ENC_NA, &ud_comp_meth);
@ -1422,7 +1428,7 @@ static int dissect_udcomphdr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
} }
/* Control plane dissector. */ /* Control plane dissector (section 7). */
static int dissect_oran_c(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) static int dissect_oran_c(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{ {
/* Set up structures needed to add the protocol subtree and manage it */ /* Set up structures needed to add the protocol subtree and manage it */
@ -1577,7 +1583,7 @@ static int dissect_oran_c(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
return tvb_captured_length(tvb); return tvb_captured_length(tvb);
} }
/* User plane dissector (6.3.2) */ /* User plane dissector (section 8) */
static int static int
dissect_oran_u(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) dissect_oran_u(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{ {
@ -1683,8 +1689,7 @@ dissect_oran_u(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
if (includeUdCompHeader) { if (includeUdCompHeader) {
/* 5.4.4.10. Described in 6.3.3.13 */ /* 5.4.4.10. Described in 6.3.3.13 */
/* Extract these values to inform how wide IQ samples in each PRB will be? */ /* Extract these values to inform how wide IQ samples in each PRB will be. */
/* TODO: should be setting compression here as well? */
offset = dissect_udcomphdr(tvb, pinfo, section_tree, offset, &sample_bit_width, &compression); offset = dissect_udcomphdr(tvb, pinfo, section_tree, offset, &sample_bit_width, &compression);
/* Not part of udCompHdr */ /* Not part of udCompHdr */
@ -1770,6 +1775,7 @@ dissect_oran_u(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
/*****************************/ /*****************************/
/* Main dissection function. */ /* Main dissection function. */
/* N.B. ecpri message type passed in as 'data' arg by eCPRI dissector */
static int static int
dissect_oran(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) dissect_oran(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{ {