forked from osmocom/wireshark
34b41729f9
Corretly decode MNC if it consists of 3 digits
Change to what is called big endinan MNC
8 7 6 5 4 3 2 1
+---+---+---+---+---+---+---+---+
| MCC digit 2 | MCC digit 1 | octet x
+---------------+---------------+
| Filler | MCC digit 3 | octet x+1
+---------------+---------------+
| MNC digit 2 | MNC digit 1 | octet x+2
+---------------+---------------+
MNC of length 3:
8 7 6 5 4 3 2 1
+---+---+---+---+---+---+---+---+
| MCC digit 2 | MCC digit 1 | octet x
+---------------+---------------+
| MNC digit 1 | MCC digit 3 | octet x+1
+---------------+---------------+
| MNC digit 3 | MNC digit 2 | octet x+2
+---------------+---------------+
From 3GPP TS 29.171
7.4.27 PLMN Identity
- digits 0 to 9, encoded 0000 to 1001,
- 1111 used as filler digit, two digits per octet,
- bits 4 to 1 of octet n encoding digit 2n-1
- bits 8 to 5 of octet n encoding digit 2n
The Selected PLMN identity consists of 3 digits from MCC followed by either
- a filler digit plus 2 digits from MNC (in case of 2 digit MNC) or
- 3 digits from MNC (in case of a 3 digit MNC).
(cherry picked from commit
|
||
---|---|---|
.. | ||
crypt | ||
dfilter | ||
dissectors | ||
ftypes | ||
wmem | ||
wslua | ||
.editorconfig | ||
CMakeLists.txt | ||
addr_and_mask.c | ||
addr_and_mask.h | ||
addr_resolv.c | ||
addr_resolv.h | ||
address.h | ||
address_types.c | ||
address_types.h | ||
afn.c | ||
afn.h | ||
aftypes.c | ||
aftypes.h | ||
app_mem_usage.c | ||
app_mem_usage.h | ||
arcnet_pids.h | ||
arptypes.h | ||
asn1.c | ||
asn1.h | ||
ax25_pids.h | ||
bridged_pids.h | ||
capture_dissectors.c | ||
capture_dissectors.h | ||
charsets.c | ||
charsets.h | ||
chdlctypes.h | ||
cisco_pid.h | ||
color_filters.c | ||
color_filters.h | ||
column-info.h | ||
column-utils.c | ||
column-utils.h | ||
column.c | ||
column.h | ||
conv_id.h | ||
conversation.c | ||
conversation.h | ||
conversation_debug.h | ||
conversation_filter.c | ||
conversation_filter.h | ||
conversation_table.c | ||
conversation_table.h | ||
crc6-tvb.c | ||
crc6-tvb.h | ||
crc8-tvb.c | ||
crc8-tvb.h | ||
crc10-tvb.c | ||
crc10-tvb.h | ||
crc16-tvb.c | ||
crc16-tvb.h | ||
crc32-tvb.c | ||
crc32-tvb.h | ||
decode_as.c | ||
decode_as.h | ||
diam_dict.h | ||
diam_dict.l | ||
disabled_protos.c | ||
disabled_protos.h | ||
dtd.h | ||
dtd_grammar.lemon | ||
dtd_parse.h | ||
dtd_parse.l | ||
dtd_preparse.l | ||
dvb_chartbl.c | ||
dvb_chartbl.h | ||
eap.h | ||
eapol_keydes_types.h | ||
epan.c | ||
epan.h | ||
epan_dissect.h | ||
etypes.h | ||
ex-opt.c | ||
ex-opt.h | ||
except.c | ||
except.h | ||
exceptions.h | ||
exntest.c | ||
expert.c | ||
expert.h | ||
export_object.c | ||
export_object.h | ||
exported_pdu.c | ||
exported_pdu.h | ||
filter_expressions.c | ||
filter_expressions.h | ||
follow.c | ||
follow.h | ||
frame_data.c | ||
frame_data.h | ||
frame_data_sequence.c | ||
frame_data_sequence.h | ||
funnel.c | ||
funnel.h | ||
garrayfix.h | ||
golay.c | ||
golay.h | ||
guid-utils.c | ||
guid-utils.h | ||
iana_charsets.c | ||
iana_charsets.h | ||
iax2_codec_type.h | ||
in_cksum.c | ||
in_cksum.h | ||
ip_opts.h | ||
ipproto.c | ||
ipproto.h | ||
ipv4.h | ||
ipv6.h | ||
lapd_sapi.h | ||
llcsaps.h | ||
maxmind_db.c | ||
maxmind_db.h | ||
media_params.c | ||
media_params.h | ||
next_tvb.c | ||
next_tvb.h | ||
nlpid.h | ||
oids.c | ||
oids.h | ||
oids_test.c | ||
osi-utils.c | ||
osi-utils.h | ||
oui.h | ||
packet.c | ||
packet.h | ||
packet_info.h | ||
params.h | ||
plugin_if.c | ||
plugin_if.h | ||
ppptypes.h | ||
prefs-int.h | ||
prefs.c | ||
prefs.h | ||
print.c | ||
print.h | ||
print.ps | ||
print_stream.c | ||
print_stream.h | ||
proto.c | ||
proto.h | ||
proto_data.c | ||
proto_data.h | ||
protobuf-helper.c | ||
protobuf-helper.h | ||
protobuf_lang.y.in | ||
protobuf_lang_scanner.l | ||
protobuf_lang_tree.c | ||
protobuf_lang_tree.h | ||
ps.h | ||
ptvcursor.h | ||
radius_dict.l | ||
range.c | ||
range.h | ||
reassemble.c | ||
reassemble.h | ||
reassemble_test.c | ||
reedsolomon.c | ||
reedsolomon.h | ||
register-int.h | ||
register.c | ||
register.h | ||
req_resp_hdrs.c | ||
req_resp_hdrs.h | ||
rtd_table.c | ||
rtd_table.h | ||
rtp_pt.h | ||
sctpppids.h | ||
secrets.c | ||
secrets.h | ||
sequence_analysis.c | ||
sequence_analysis.h | ||
show_exception.c | ||
show_exception.h | ||
slow_protocol_subtypes.h | ||
sminmpec.h | ||
srt_table.c | ||
srt_table.h | ||
stat_groups.h | ||
stat_tap_ui.c | ||
stat_tap_ui.h | ||
stats_tree.c | ||
stats_tree.h | ||
stats_tree_priv.h | ||
stream.c | ||
stream.h | ||
strutil.c | ||
strutil.h | ||
t35.c | ||
t35.h | ||
tap-voip.h | ||
tap.c | ||
tap.h | ||
tfs.c | ||
tfs.h | ||
time_fmt.h | ||
timestamp.c | ||
timestamp.h | ||
timestats.c | ||
timestats.h | ||
to_str-int.h | ||
to_str.c | ||
to_str.h | ||
tvbparse.c | ||
tvbparse.h | ||
tvbtest.c | ||
tvbuff-int.h | ||
tvbuff.c | ||
tvbuff.h | ||
tvbuff_base64.c | ||
tvbuff_brotli.c | ||
tvbuff_composite.c | ||
tvbuff_lz77.c | ||
tvbuff_lz77huff.c | ||
tvbuff_lznt1.c | ||
tvbuff_real.c | ||
tvbuff_subset.c | ||
tvbuff_zlib.c | ||
uat-int.h | ||
uat.c | ||
uat.h | ||
uat_load.l | ||
unit_strings.c | ||
unit_strings.h | ||
value_string.c | ||
value_string.h | ||
x264_prt_id.h | ||
xdlc.c | ||
xdlc.h |