[INFO] cloning repository https://github.com/Git-ijhwang/rust_gtpv2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Git-ijhwang/rust_gtpv2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGit-ijhwang%2Frust_gtpv2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGit-ijhwang%2Frust_gtpv2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 897946ea61c0aa7aa6128a0fe45f2728e33aeaad
[INFO] checking Git-ijhwang/rust_gtpv2 against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGit-ijhwang%2Frust_gtpv2" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Git-ijhwang/rust_gtpv2
[INFO] finished tweaking git repo https://github.com/Git-ijhwang/rust_gtpv2
[INFO] tweaked toml for git repo https://github.com/Git-ijhwang/rust_gtpv2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Git-ijhwang/rust_gtpv2 on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Git-ijhwang/rust_gtpv2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded windows-registry v0.2.0
[INFO] [stderr]   Downloaded thiserror-impl v2.0.5
[INFO] [stderr]   Downloaded thiserror v2.0.5
[INFO] [stderr]   Downloaded serde_json v1.0.133
[INFO] [stderr]   Downloaded sysinfo v0.33.1
[INFO] [stderr]   Downloaded hyper v1.5.2
[INFO] [stderr]   Downloaded h2 v0.4.7
[INFO] [stderr]   Downloaded reqwest v0.12.12
[INFO] [stderr]   Downloaded fern v0.7.1
[INFO] [stderr]   Downloaded rustls v0.23.21
[INFO] [stderr]   Downloaded rustix v0.38.43
[INFO] [stderr]   Downloaded libc v0.2.167
[INFO] [stderr]   Downloaded tokio v1.41.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053
[INFO] running `Command { std: "docker" "start" "-a" "9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053", kill_on_drop: false }`
[INFO] [stdout] 9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b
[INFO] running `Command { std: "docker" "start" "-a" "2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking bytes v1.9.0
[INFO] [stderr]     Checking pin-project-lite v0.2.15
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]    Compiling httparse v1.9.5
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]    Compiling cc v1.2.4
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking http v1.2.0
[INFO] [stderr]    Compiling serde_json v1.0.133
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking rustls-pki-types v1.10.1
[INFO] [stderr]    Compiling thiserror v2.0.5
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking iana-time-zone v0.1.61
[INFO] [stderr]     Checking ipnet v2.10.1
[INFO] [stderr]     Checking fern v0.7.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking sysinfo v0.33.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v2.0.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking tokio v1.41.1
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking tokio-util v0.7.13
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.39
[INFO] [stderr]     Checking h2 v0.4.7
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking hyper v1.5.2
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.12
[INFO] [stderr]     Checking gtp-control v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::net::Ipv4Addr`
[INFO] [stdout]  --> src/gtpv2_send.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::Ipv4Addr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `trace`, and `warn`
[INFO] [stdout]  --> src/gtpv2_send.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^        ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::seq`
[INFO] [stdout]  --> src/gtpv2_send.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::seq;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gtpv2_type::*`
[INFO] [stdout]   --> src/gtpv2_send.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::gtpv2_type::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::peers::*`
[INFO] [stdout]   --> src/gtpv2_send.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::peers::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/gtpv2_recv.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddrV4`
[INFO] [stdout]  --> src/gtpv2_recv.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddrV4, UdpSocket, SocketAddr};
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/gtpv2_recv.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::gtp_dictionary::{self, *};
[INFO] [stdout]    |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session`
[INFO] [stdout]   --> src/gtpv2_recv.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{find_pkt_in_queue, session, validate_gtpv2::*};
[INFO] [stdout]    |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/gtpv2_recv.rs:383:25
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 gpos += (4 + len);
[INFO] [stdout]     |                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -                 gpos += (4 + len);
[INFO] [stdout] 383 +                 gpos += 4 + len ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/gtpv2_ie.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^         ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, and `warn`
[INFO] [stdout]  --> src/gtp_msg.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie1` should have an upper camel case name
[INFO] [stdout]   --> src/gtp_msg.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct gtpv2c_ie1 {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe1`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie2` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct gtpv2c_ie2 {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie4` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct gtpv2c_ie4 {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie8` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct gtpv2c_ie8 {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie_tlv` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct gtpv2c_ie_tlv {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIeTlv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::Ipv4Addr`
[INFO] [stdout]  --> src/gtpv2_send.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::Ipv4Addr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `trace`, and `warn`
[INFO] [stdout]  --> src/gtpv2_send.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^        ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::seq`
[INFO] [stdout]  --> src/gtpv2_send.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::seq;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gtpv2_type::*`
[INFO] [stdout]   --> src/gtpv2_send.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::gtpv2_type::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::peers::*`
[INFO] [stdout]   --> src/gtpv2_send.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::peers::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/gtpv2_recv.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddrV4`
[INFO] [stdout]  --> src/gtpv2_recv.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddrV4, UdpSocket, SocketAddr};
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/gtpv2_recv.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::gtp_dictionary::{self, *};
[INFO] [stdout]    |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session`
[INFO] [stdout]   --> src/gtpv2_recv.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{find_pkt_in_queue, session, validate_gtpv2::*};
[INFO] [stdout]    |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/gtpv2_recv.rs:383:25
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 gpos += (4 + len);
[INFO] [stdout]     |                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -                 gpos += (4 + len);
[INFO] [stdout] 383 +                 gpos += 4 + len ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/gtpv2_ie.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^         ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, and `warn`
[INFO] [stdout]  --> src/gtp_msg.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie1` should have an upper camel case name
[INFO] [stdout]   --> src/gtp_msg.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct gtpv2c_ie1 {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe1`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie2` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct gtpv2c_ie2 {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie4` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct gtpv2c_ie4 {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie8` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct gtpv2c_ie8 {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `gtpv2c_ie_tlv` should have an upper camel case name
[INFO] [stdout]    --> src/gtp_msg.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct gtpv2c_ie_tlv {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIeTlv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/udpsock.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn`
[INFO] [stdout]  --> src/pkt_manage.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/udpsock.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn`
[INFO] [stdout]  --> src/gtp_dictionary.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn`
[INFO] [stdout]  --> src/pkt_manage.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn`
[INFO] [stdout]  --> src/gtp_dictionary.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `info` and `warn`
[INFO] [stdout]  --> src/validate_gtpv2.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |                         ^^^^         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `info` and `warn`
[INFO] [stdout]  --> src/validate_gtpv2.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |                         ^^^^         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/peers.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{self, Duration};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn`
[INFO] [stdout]   --> src/peers.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |           ^^^^^               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/peers.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{self, Duration};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn`
[INFO] [stdout]   --> src/peers.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |           ^^^^^               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]  --> src/ippool.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/ippool.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/session.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, RwLock, Mutex};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `trace`
[INFO] [stdout]  --> src/session.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]  --> src/ippool.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `bearer_info` should have an upper camel case name
[INFO] [stdout]   --> src/session.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct bearer_info {
[INFO] [stdout]    |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `BearerInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `pdn_info` should have an upper camel case name
[INFO] [stdout]    --> src/session.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct pdn_info {
[INFO] [stdout]     |            ^^^^^^^^ help: convert the identifier to upper camel case: `PdnInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/ippool.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `control_info` should have an upper camel case name
[INFO] [stdout]    --> src/session.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct control_info {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ControlInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/dump.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, error, warn};
[INFO] [stdout]   |                 ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/msg_static.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/msg_static.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::sync::{RwLock, Mutex};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `trace`, and `warn`
[INFO] [stdout]   --> src/main.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |           ^^^^^  ^^^^^        ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/session.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, RwLock, Mutex};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `trace`
[INFO] [stdout]  --> src/session.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `bearer_info` should have an upper camel case name
[INFO] [stdout]   --> src/session.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct bearer_info {
[INFO] [stdout]    |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `BearerInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `pdn_info` should have an upper camel case name
[INFO] [stdout]    --> src/session.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct pdn_info {
[INFO] [stdout]     |            ^^^^^^^^ help: convert the identifier to upper camel case: `PdnInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `control_info` should have an upper camel case name
[INFO] [stdout]    --> src/session.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct control_info {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ControlInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/dump.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, error, warn};
[INFO] [stdout]   |                 ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/msg_static.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/msg_static.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::sync::{RwLock, Mutex};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `trace`, and `warn`
[INFO] [stdout]   --> src/main.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |           ^^^^^  ^^^^^        ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     let mut pdn_index:u32 = 0;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:455:9
[INFO] [stdout]     |
[INFO] [stdout] 455 |     let mut pdn;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     let mut pdn_index:u32 = 0;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |     let mut pdn;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:455:9
[INFO] [stdout]     |
[INFO] [stdout] 455 |     let mut pdn;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |     let mut pdn;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 655 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:934:9
[INFO] [stdout]     |
[INFO] [stdout] 934 |     let mut peer = if let Some(value) = peers.get_mut(&u32::from(pkt_info.peer_ip)) {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:956:9
[INFO] [stdout]     |
[INFO] [stdout] 956 |     let mut restart_counter = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 655 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:934:9
[INFO] [stdout]     |
[INFO] [stdout] 934 |     let mut peer = if let Some(value) = peers.get_mut(&u32::from(pkt_info.peer_ip)) {
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtpv2_recv.rs:956:9
[INFO] [stdout]     |
[INFO] [stdout] 956 |     let mut restart_counter = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/msg_static.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | /     loop {
[INFO] [stdout] 110 | |         cnt += 1;
[INFO] [stdout] ...   |
[INFO] [stdout] 152 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 153 |
[INFO] [stdout] 154 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/msg_static.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | /     loop {
[INFO] [stdout] 110 | |         cnt += 1;
[INFO] [stdout] ...   |
[INFO] [stdout] 152 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 153 |
[INFO] [stdout] 154 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]   --> src/main.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::{fs::File, fs::metadata,io::Write};
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg_type`
[INFO] [stdout]    --> src/gtpv2_recv.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn add_ie_parse_info(&mut self, msg_type: u8,
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_len`
[INFO] [stdout]    --> src/gtpv2_recv.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |         min_len: u8, max_len: u8, received: u8,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_len`
[INFO] [stdout]    --> src/gtpv2_recv.rs:120:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |         min_len: u8, max_len: u8, received: u8,
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `received`
[INFO] [stdout]    --> src/gtpv2_recv.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         min_len: u8, max_len: u8, received: u8,
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ie_instance`
[INFO] [stdout]    --> src/gtpv2_recv.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         ie_instance: u8, ie_presence: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_instance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ie_presence`
[INFO] [stdout]    --> src/gtpv2_recv.rs:121:26
[INFO] [stdout]     |
[INFO] [stdout] 121 |         ie_instance: u8, ie_presence: u8,
[INFO] [stdout]     |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_presence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/gtpv2_recv.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |         Err(err) =>  Err("Unknow Message type".to_string()),
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_list`
[INFO] [stdout]    --> src/gtpv2_recv.rs:415:75
[INFO] [stdout]     |
[INFO] [stdout] 415 | async fn recv_delete_session_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList)
[INFO] [stdout]     |                                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `imsi`
[INFO] [stdout]    --> src/gtpv2_recv.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     let mut imsi: String;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_imsi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cause_value` is assigned to, but never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     let mut cause_value: u8;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cause_value` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdn_index`
[INFO] [stdout]    --> src/gtpv2_recv.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     let mut pdn_index:u32 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/gtpv2_recv.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `imsi`
[INFO] [stdout]    --> src/gtpv2_recv.rs:436:10
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let imsi = session.lock().unwrap().imsi.clone();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_imsi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cause_value` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |         cause_value = 64; //Context_NOT_Found
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cause_value` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:443:9
[INFO] [stdout]     |
[INFO] [stdout] 443 |         cause_value = 64; //Context_NOT_Found
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_list`
[INFO] [stdout]    --> src/gtpv2_recv.rs:451:74
[INFO] [stdout]     |
[INFO] [stdout] 451 | async fn recv_modify_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList)
[INFO] [stdout]     |                                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ebi` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:454:19
[INFO] [stdout]     |
[INFO] [stdout] 454 |     let mut ebi = 0;
[INFO] [stdout]     |                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_list`
[INFO] [stdout]    --> src/gtpv2_recv.rs:549:74
[INFO] [stdout]     |
[INFO] [stdout] 549 | async fn recv_create_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList)
[INFO] [stdout]     |                                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pdn` is assigned to, but never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |     let mut pdn;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pdn` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ebi` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:553:19
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let mut ebi = 0;
[INFO] [stdout]     |                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pdn` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:574:9
[INFO] [stdout]     |
[INFO] [stdout] 574 |         pdn = ret;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pdn_index` is assigned to, but never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:654:9
[INFO] [stdout]     |
[INFO] [stdout] 654 |     let mut pdn_index = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pdn_index` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/gtpv2_recv.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 655 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pdn_index` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:891:26
[INFO] [stdout]     |
[INFO] [stdout] 891 |             Ok(value) => pdn_index = value,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pdn_index` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:859:17
[INFO] [stdout]     |
[INFO] [stdout] 859 |             Ok(value) => pdn_index = value,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |     let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     total_len += gtpv2_add_ie_paa(&mut buffer, 0, PDN_TYPE_IPV4, ip );
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `restart_counter` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:921:31
[INFO] [stdout]     |
[INFO] [stdout] 921 |     let mut restart_counter = 0;
[INFO] [stdout]     |                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `restart_counter`
[INFO] [stdout]    --> src/gtpv2_recv.rs:956:9
[INFO] [stdout]     |
[INFO] [stdout] 956 |     let mut restart_counter = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_restart_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/gtpv2_recv.rs:964:20
[INFO] [stdout]     |
[INFO] [stdout] 964 |     if let Result::Ok(ret) = get_single_value(pkt_info.ie, GTPV2C_IE_RECOVERY) {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sin_port`
[INFO] [stdout]     --> src/gtpv2_recv.rs:1084:25
[INFO] [stdout]      |
[INFO] [stdout] 1084 |                     let sin_port = addr.port();
[INFO] [stdout]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sin_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mp`
[INFO] [stdout]   --> src/gtp_msg.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |             l: u16, teid: u32, s: u32, mp: u8)
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_mp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]    --> src/gtp_msg.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     let peer = if let Some(value) = peers.get_mut(&u32::from(locked_session.peer_ip)) {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:314:25
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     total_len += gtpv2_add_ie_tbcd(&mut buffer, GTPV2C_IE_MSISDN, 0, msisdn_value);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtp_msg.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut buffer:[u8;1024] = [0u8;1024];
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]    --> src/gtp_msg.rs:352:41
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer,
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdn_index`
[INFO] [stdout]    --> src/gtp_msg.rs:355:5
[INFO] [stdout]     |
[INFO] [stdout] 355 |     pdn_index: usize)
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/gtp_msg.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let session = session.lock().unwrap();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/gtp_msg.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut buffer:[u8;1024] = [0u8;1024];
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pkt`
[INFO] [stdout]    --> src/pkt_manage.rs:122:14
[INFO] [stdout]     |
[INFO] [stdout] 122 |         Some(pkt) => {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_pkt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]   --> src/main.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::{fs::File, fs::metadata,io::Write};
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg_type`
[INFO] [stdout]    --> src/gtpv2_recv.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn add_ie_parse_info(&mut self, msg_type: u8,
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_len`
[INFO] [stdout]    --> src/gtpv2_recv.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |         min_len: u8, max_len: u8, received: u8,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_len`
[INFO] [stdout]    --> src/gtpv2_recv.rs:120:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |         min_len: u8, max_len: u8, received: u8,
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `received`
[INFO] [stdout]    --> src/gtpv2_recv.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         min_len: u8, max_len: u8, received: u8,
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ie_instance`
[INFO] [stdout]    --> src/gtpv2_recv.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         ie_instance: u8, ie_presence: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_instance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ie_presence`
[INFO] [stdout]    --> src/gtpv2_recv.rs:121:26
[INFO] [stdout]     |
[INFO] [stdout] 121 |         ie_instance: u8, ie_presence: u8,
[INFO] [stdout]     |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_presence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/gtpv2_recv.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |         Err(err) =>  Err("Unknow Message type".to_string()),
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pflag`
[INFO] [stdout]    --> src/validate_gtpv2.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let pflag = (data[p] & GTPV2_P_FLAG) > 0;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_pflag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dictionary`
[INFO] [stdout]    --> src/validate_gtpv2.rs:177:40
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn extract_nested_ies(raw_data: &[u8], dictionary: &GtpMessage) -> Vec<(u8, usize) > {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dictionary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_list`
[INFO] [stdout]    --> src/gtpv2_recv.rs:415:75
[INFO] [stdout]     |
[INFO] [stdout] 415 | async fn recv_delete_session_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList)
[INFO] [stdout]     |                                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `imsi`
[INFO] [stdout]    --> src/gtpv2_recv.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     let mut imsi: String;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_imsi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cause_value` is assigned to, but never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     let mut cause_value: u8;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cause_value` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdn_index`
[INFO] [stdout]    --> src/gtpv2_recv.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     let mut pdn_index:u32 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/gtpv2_recv.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `imsi`
[INFO] [stdout]    --> src/gtpv2_recv.rs:436:10
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let imsi = session.lock().unwrap().imsi.clone();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_imsi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cause_value` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |         cause_value = 64; //Context_NOT_Found
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cause_value` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:443:9
[INFO] [stdout]     |
[INFO] [stdout] 443 |         cause_value = 64; //Context_NOT_Found
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `echo_period`
[INFO] [stdout]    --> src/peers.rs:197:6
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let echo_period    = config.get("ECHO_PERIOD").unwrap().parse::<u64>().unwrap() ;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_echo_period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_list`
[INFO] [stdout]    --> src/gtpv2_recv.rs:451:74
[INFO] [stdout]     |
[INFO] [stdout] 451 | async fn recv_modify_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList)
[INFO] [stdout]     |                                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/peers.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 |         for (key, peer) in peers.iter_mut() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ebi` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:454:19
[INFO] [stdout]     |
[INFO] [stdout] 454 |     let mut ebi = 0;
[INFO] [stdout]     |                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sess_list`
[INFO] [stdout]    --> src/gtpv2_recv.rs:549:74
[INFO] [stdout]     |
[INFO] [stdout] 549 | async fn recv_create_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList)
[INFO] [stdout]     |                                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pdn` is assigned to, but never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |     let mut pdn;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pdn` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ebi` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:553:19
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let mut ebi = 0;
[INFO] [stdout]     |                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pdn` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:574:9
[INFO] [stdout]     |
[INFO] [stdout] 574 |         pdn = ret;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pdn_index` is assigned to, but never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:654:9
[INFO] [stdout]     |
[INFO] [stdout] 654 |     let mut pdn_index = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pdn_index` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/gtpv2_recv.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 655 |     let mut address = [Ipv4Addr::new(0,0,0,0); 48];
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pdn_index` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:891:26
[INFO] [stdout]     |
[INFO] [stdout] 891 |             Ok(value) => pdn_index = value,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pdn_index` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:859:17
[INFO] [stdout]     |
[INFO] [stdout] 859 |             Ok(value) => pdn_index = value,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/session.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |     let mut session = session.lock().unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |     let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     total_len += gtpv2_add_ie_paa(&mut buffer, 0, PDN_TYPE_IPV4, ip );
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `restart_counter` is never read
[INFO] [stdout]    --> src/gtpv2_recv.rs:921:31
[INFO] [stdout]     |
[INFO] [stdout] 921 |     let mut restart_counter = 0;
[INFO] [stdout]     |                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `restart_counter`
[INFO] [stdout]    --> src/gtpv2_recv.rs:956:9
[INFO] [stdout]     |
[INFO] [stdout] 956 |     let mut restart_counter = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_restart_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/gtpv2_recv.rs:964:20
[INFO] [stdout]     |
[INFO] [stdout] 964 |     if let Result::Ok(ret) = get_single_value(pkt_info.ie, GTPV2C_IE_RECOVERY) {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sin_port`
[INFO] [stdout]     --> src/gtpv2_recv.rs:1084:25
[INFO] [stdout]      |
[INFO] [stdout] 1084 |                     let sin_port = addr.port();
[INFO] [stdout]      |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sin_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mp`
[INFO] [stdout]   --> src/gtp_msg.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |             l: u16, teid: u32, s: u32, mp: u8)
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_mp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]    --> src/gtp_msg.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     let peer = if let Some(value) = peers.get_mut(&u32::from(locked_session.peer_ip)) {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:314:25
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/gtp_msg.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 318 |     total_len += gtpv2_add_ie_tbcd(&mut buffer, GTPV2C_IE_MSISDN, 0, msisdn_value);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gtp_msg.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut buffer:[u8;1024] = [0u8;1024];
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peer`
[INFO] [stdout]    --> src/gtp_msg.rs:352:41
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer,
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_peer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pdn_index`
[INFO] [stdout]    --> src/gtp_msg.rs:355:5
[INFO] [stdout]     |
[INFO] [stdout] 355 |     pdn_index: usize)
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/gtp_msg.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |     let session = session.lock().unwrap();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/gtp_msg.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut buffer:[u8;1024] = [0u8;1024];
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pkt`
[INFO] [stdout]    --> src/pkt_manage.rs:122:14
[INFO] [stdout]     |
[INFO] [stdout] 122 |         Some(pkt) => {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_pkt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `IeMessage` is more private than the item `get_ie_value`
[INFO] [stdout]    --> src/gtpv2_recv.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | pub fn get_ie_value(raw_data: &[u8]) -> IeMessage
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `get_ie_value` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `IeMessage` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gtpv2_recv.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | struct IeMessage {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2Peer` is never constructed
[INFO] [stdout]   --> src/gtpv2_recv.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Gtpv2Peer {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BearerTFT` is never constructed
[INFO] [stdout]   --> src/gtpv2_recv.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct BearerTFT {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2IeDetailInfo` is never constructed
[INFO] [stdout]   --> src/gtpv2_recv.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Gtpv2IeDetailInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2IeInfo` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct Gtpv2IeInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add_ie_parse_info` are never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Gtpv2IeInfo {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 111 |     fn new (msg_type: u8) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn add_ie_parse_info(&mut self, msg_type: u8,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IeParseDetails` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct IeParseDetails { 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IeParseGroupDetails` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | struct IeParseGroupDetails { //XXX
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2GroupIeParseInfo` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | struct Gtpv2GroupIeParseInfo {//gtpv2_group_ie_parse_info_t
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2IeParseInfo` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct Gtpv2IeParseInfo { //gtpv2_ie_parse_info_t
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_gtpv2_version_not_supported` is never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn send_gtpv2_version_not_supported( _peer: Arc<Mutex<Gtpv2Peer>>,
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_dictionary` is never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub async fn find_dictionary(msg_type: u8) -> Result<GtpMessage, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 245 | enum LVValue {
[INFO] [stdout]     |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 248 |     None,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LVValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_add_ie_tv2` is never used
[INFO] [stdout]    --> src/gtpv2_ie.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn gtpv2_add_ie_tv2<'a>( msg: &'a mut [u8; 1024],
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_add_ie_tv4` is never used
[INFO] [stdout]    --> src/gtpv2_ie.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn gtpv2_add_ie_tv4<'a>( msg: &'a mut [u8; 1024], 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_add_ie_mccmnc` is never used
[INFO] [stdout]    --> src/gtpv2_ie.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub fn gtpv2_add_ie_mccmnc( msg: &mut [u8; 1024], 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie1` is never constructed
[INFO] [stdout]   --> src/gtp_msg.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct gtpv2c_ie1 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gtp_msg.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl gtpv2c_ie1 {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 91 |     pub fn new(p: &mut [u8], t: u8, i: u8, v: u8){
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie2` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct gtpv2c_ie2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie4` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct gtpv2c_ie4 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie8` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct gtpv2c_ie8 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie_tlv` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct gtpv2c_ie_tlv {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_ie` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn create_ie <'a> (p:&'a mut [u8], t:u8, val:u8) -> usize
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tv1` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn gtpv2_get_ie_tv1(data: &[u8], val: &mut u8) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tv2` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn gtpv2_get_ie_tv2(data: &[u8], val: &mut u16) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tv4` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn gtpv2_get_ie_tv4(data: &[u8], val: &mut u32) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tlv` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn gtpv2_get_ie_tlv(data: &[u8], val: &mut [u8]) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_under_tv4` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub fn gtpv2_get_ie_under_tv4( data: &[u8],
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_mbr` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn gtpv2_get_ie_mbr(data: &[u8], up: &mut u32, down: &mut u32)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtp_send_delete_session_request` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_send_time`, `increment_send_count`, and `is_expired` are never used
[INFO] [stdout]   --> src/pkt_manage.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl EncapPkt {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn update_send_time(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn increment_send_count(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn is_expired(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pop` and `que_print` are never used
[INFO] [stdout]    --> src/pkt_manage.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl MsgQue  {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn pop(&mut self) -> EncapPkt {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |      pub fn que_print(self) {
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `check_peer`, `put_peer`, `change_peer_status`, and `print` are never used
[INFO] [stdout]    --> src/peers.rs:75:18
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl Peer {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub async fn check_peer(ip: Ipv4Addr) -> Result<Self,()> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub async fn put_peer(peer: Peer) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn change_peer_status(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub async fn print() {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `del` is never used
[INFO] [stdout]   --> src/session.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl TeidList {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn del(&self, teid: &u32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `del` and `get` are never used
[INFO] [stdout]   --> src/session.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl SessionList {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn del(&self, imsi: &str) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get (&self, imsi:&str) -> Option<Arc<Mutex<Session>>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `used` is never read
[INFO] [stdout]   --> src/session.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct bearer_info {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 97 |     pub used:       bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `bearer_info` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `used` is never read
[INFO] [stdout]    --> src/session.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct pdn_info {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 124 |     pub used:        bool,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `pdn_info` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `teid`, `status`, and `seqnum` are never read
[INFO] [stdout]    --> src/session.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct Session {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub teid:       u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub status:     u8,     //Session Status
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 176 |     pub seqnum:     u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Session` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_pdn` is never used
[INFO] [stdout]    --> src/session.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn check_pdn(session: &Session, lbi: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_bearer_by_lbi` is never used
[INFO] [stdout]    --> src/session.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn check_bearer_by_lbi(session: &Session, lbi: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_bearer_by_ebi` is never used
[INFO] [stdout]    --> src/session.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn check_bearer_by_ebi(session: &Session, ebi: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_empty_pdn` is never used
[INFO] [stdout]    --> src/session.rs:255:8
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub fn find_empty_pdn(session: &mut Session)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/msg_static.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl MessageStats {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MessageStatsData` is never used
[INFO] [stdout]   --> src/msg_static.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub type MessageStatsData = Vec<MessageStats>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/msg_static.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl CpuStats {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 92 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_send.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             update_message_stats(msg_type, true, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         gtp_send_delete_session_response(session.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:463:9
[INFO] [stdout]     |
[INFO] [stdout] 463 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:472:9
[INFO] [stdout]     |
[INFO] [stdout] 472 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:481:9
[INFO] [stdout]     |
[INFO] [stdout] 481 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:521:25
[INFO] [stdout]     |
[INFO] [stdout] 521 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:544:5
[INFO] [stdout]     |
[INFO] [stdout] 544 |     gtp_send_modify_bearer_response (session.clone(), pdn.lbi);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:616:25
[INFO] [stdout]     |
[INFO] [stdout] 616 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:673:13
[INFO] [stdout]     |
[INFO] [stdout] 673 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:692:21
[INFO] [stdout]     |
[INFO] [stdout] 692 |                     update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:707:13
[INFO] [stdout]     |
[INFO] [stdout] 707 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:736:21
[INFO] [stdout]     |
[INFO] [stdout] 736 |                     update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:764:25
[INFO] [stdout]     |
[INFO] [stdout] 764 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_MISSING_OR_UNKNOWN_APN);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:822:25
[INFO] [stdout]     |
[INFO] [stdout] 822 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_DENIED_IN_RAT);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:844:13
[INFO] [stdout]     |
[INFO] [stdout] 844 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_TEMPORARILY_REJECTED);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:861:17
[INFO] [stdout]     |
[INFO] [stdout] 861 |                 update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:870:21
[INFO] [stdout]     |
[INFO] [stdout] 870 |                     update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:882:13
[INFO] [stdout]     |
[INFO] [stdout] 882 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:893:17
[INFO] [stdout]     |
[INFO] [stdout] 893 |                 update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:901:17
[INFO] [stdout]     |
[INFO] [stdout] 901 |                 update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:913:2
[INFO] [stdout]     |
[INFO] [stdout] 913 |     gtp_send_create_session_response(session).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 913 |     let _ = gtp_send_create_session_response(session).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:928:9
[INFO] [stdout]     |
[INFO] [stdout] 928 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:931:5
[INFO] [stdout]     |
[INFO] [stdout] 931 |     update_message_stats(pkt_info.header.t, true, 0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:947:5
[INFO] [stdout]     |
[INFO] [stdout] 947 |     gtp_send_echo_response(peer , restart_counter).await;   
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 947 |     let _ = gtp_send_echo_response(peer , restart_counter).await;   
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     update_message_stats(pkt_info.header.t, true, 0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:980:13
[INFO] [stdout]     |
[INFO] [stdout] 980 |             recv_echo_req(pkt_info).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 980 |             let _ = recv_echo_req(pkt_info).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:983:13
[INFO] [stdout]     |
[INFO] [stdout] 983 |             find_pkt_in_queue(peer.ip, pkt_info.header.s);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:984:13
[INFO] [stdout]     |
[INFO] [stdout] 984 |             recv_echo_rsp(pkt_info).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 984 |             let _ = recv_echo_rsp(pkt_info).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:989:13
[INFO] [stdout]     |
[INFO] [stdout] 989 |             recv_crte_sess_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 989 |             let _ = recv_crte_sess_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:994:13
[INFO] [stdout]     |
[INFO] [stdout] 994 |             recv_modify_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 994 |             let _ = recv_modify_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:998:13
[INFO] [stdout]     |
[INFO] [stdout] 998 |             recv_create_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 998 |             let _ = recv_create_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/gtpv2_recv.rs:1003:13
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             recv_delete_session_req( pkt_info, teid_list, sess_list).await;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             let _ = recv_delete_session_req( pkt_info, teid_list, sess_list).await;
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]     --> src/gtpv2_recv.rs:1052:9
[INFO] [stdout]      |
[INFO] [stdout] 1052 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_LENGTH);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/gtp_msg.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn encode<'a> (p:&'a mut [u8], p_flag: bool,
[INFO] [stdout]    |                           -- the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 37 |     -> (&[u8], usize)
[INFO] [stdout]    |         ^^^^^ the same lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     -> (&'a [u8], usize)
[INFO] [stdout]    |          ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/gtp_msg.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] );
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let _ = &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] );
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |     let _ = send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 |     send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 300 |     let _ = send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:345:5
[INFO] [stdout]     |
[INFO] [stdout] 345 |     send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 345 |     let _ = send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:391:5
[INFO] [stdout]     |
[INFO] [stdout] 391 |     send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 391 |     let _ = send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let _ = send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `QoS` should have a snake case name
[INFO] [stdout]    --> src/session.rs:106:6
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub QoS:        BearerQos,
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case: `qo_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pflag`
[INFO] [stdout]    --> src/validate_gtpv2.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let pflag = (data[p] & GTPV2_P_FLAG) > 0;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_pflag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dictionary`
[INFO] [stdout]    --> src/validate_gtpv2.rs:177:40
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn extract_nested_ies(raw_data: &[u8], dictionary: &GtpMessage) -> Vec<(u8, usize) > {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dictionary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `echo_period`
[INFO] [stdout]    --> src/peers.rs:197:6
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let echo_period    = config.get("ECHO_PERIOD").unwrap().parse::<u64>().unwrap() ;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_echo_period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/peers.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 |         for (key, peer) in peers.iter_mut() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/session.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |     let mut session = session.lock().unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `IeMessage` is more private than the item `get_ie_value`
[INFO] [stdout]    --> src/gtpv2_recv.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | pub fn get_ie_value(raw_data: &[u8]) -> IeMessage
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `get_ie_value` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `IeMessage` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/gtpv2_recv.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | struct IeMessage {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2Peer` is never constructed
[INFO] [stdout]   --> src/gtpv2_recv.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Gtpv2Peer {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BearerTFT` is never constructed
[INFO] [stdout]   --> src/gtpv2_recv.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct BearerTFT {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2IeDetailInfo` is never constructed
[INFO] [stdout]   --> src/gtpv2_recv.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Gtpv2IeDetailInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2IeInfo` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct Gtpv2IeInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add_ie_parse_info` are never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Gtpv2IeInfo {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 111 |     fn new (msg_type: u8) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn add_ie_parse_info(&mut self, msg_type: u8,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IeParseDetails` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct IeParseDetails { 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IeParseGroupDetails` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | struct IeParseGroupDetails { //XXX
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2GroupIeParseInfo` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | struct Gtpv2GroupIeParseInfo {//gtpv2_group_ie_parse_info_t
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Gtpv2IeParseInfo` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct Gtpv2IeParseInfo { //gtpv2_ie_parse_info_t
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_gtpv2_version_not_supported` is never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn send_gtpv2_version_not_supported( _peer: Arc<Mutex<Gtpv2Peer>>,
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_dictionary` is never used
[INFO] [stdout]    --> src/gtpv2_recv.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub async fn find_dictionary(msg_type: u8) -> Result<GtpMessage, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]    --> src/gtpv2_recv.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 245 | enum LVValue {
[INFO] [stdout]     |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 248 |     None,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LVValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_add_ie_tv2` is never used
[INFO] [stdout]    --> src/gtpv2_ie.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn gtpv2_add_ie_tv2<'a>( msg: &'a mut [u8; 1024],
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_add_ie_tv4` is never used
[INFO] [stdout]    --> src/gtpv2_ie.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn gtpv2_add_ie_tv4<'a>( msg: &'a mut [u8; 1024], 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_add_ie_mccmnc` is never used
[INFO] [stdout]    --> src/gtpv2_ie.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub fn gtpv2_add_ie_mccmnc( msg: &mut [u8; 1024], 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie1` is never constructed
[INFO] [stdout]   --> src/gtp_msg.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct gtpv2c_ie1 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gtp_msg.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl gtpv2c_ie1 {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 91 |     pub fn new(p: &mut [u8], t: u8, i: u8, v: u8){
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie2` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct gtpv2c_ie2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie4` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | struct gtpv2c_ie4 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie8` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct gtpv2c_ie8 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `gtpv2c_ie_tlv` is never constructed
[INFO] [stdout]    --> src/gtp_msg.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct gtpv2c_ie_tlv {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_ie` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn create_ie <'a> (p:&'a mut [u8], t:u8, val:u8) -> usize
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tv1` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn gtpv2_get_ie_tv1(data: &[u8], val: &mut u8) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tv2` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn gtpv2_get_ie_tv2(data: &[u8], val: &mut u16) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tv4` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn gtpv2_get_ie_tv4(data: &[u8], val: &mut u32) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_tlv` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn gtpv2_get_ie_tlv(data: &[u8], val: &mut [u8]) -> Result<usize, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_under_tv4` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub fn gtpv2_get_ie_under_tv4( data: &[u8],
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtpv2_get_ie_mbr` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn gtpv2_get_ie_mbr(data: &[u8], up: &mut u32, down: &mut u32)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gtp_send_delete_session_request` is never used
[INFO] [stdout]    --> src/gtp_msg.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_send_time`, `increment_send_count`, and `is_expired` are never used
[INFO] [stdout]   --> src/pkt_manage.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl EncapPkt {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn update_send_time(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn increment_send_count(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn is_expired(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pop` and `que_print` are never used
[INFO] [stdout]    --> src/pkt_manage.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl MsgQue  {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn pop(&mut self) -> EncapPkt {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |      pub fn que_print(self) {
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `check_peer`, `put_peer`, `change_peer_status`, and `print` are never used
[INFO] [stdout]    --> src/peers.rs:75:18
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl Peer {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub async fn check_peer(ip: Ipv4Addr) -> Result<Self,()> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub async fn put_peer(peer: Peer) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn change_peer_status(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub async fn print() {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `del` is never used
[INFO] [stdout]   --> src/session.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl TeidList {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn del(&self, teid: &u32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `del` and `get` are never used
[INFO] [stdout]   --> src/session.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl SessionList {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn del(&self, imsi: &str) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get (&self, imsi:&str) -> Option<Arc<Mutex<Session>>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `used` is never read
[INFO] [stdout]   --> src/session.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct bearer_info {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 97 |     pub used:       bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `bearer_info` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `used` is never read
[INFO] [stdout]    --> src/session.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct pdn_info {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 124 |     pub used:        bool,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `pdn_info` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `teid`, `status`, and `seqnum` are never read
[INFO] [stdout]    --> src/session.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct Session {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub teid:       u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub status:     u8,     //Session Status
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 176 |     pub seqnum:     u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Session` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_pdn` is never used
[INFO] [stdout]    --> src/session.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn check_pdn(session: &Session, lbi: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_bearer_by_lbi` is never used
[INFO] [stdout]    --> src/session.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn check_bearer_by_lbi(session: &Session, lbi: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_bearer_by_ebi` is never used
[INFO] [stdout]    --> src/session.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn check_bearer_by_ebi(session: &Session, ebi: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_empty_pdn` is never used
[INFO] [stdout]    --> src/session.rs:255:8
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub fn find_empty_pdn(session: &mut Session)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/msg_static.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl MessageStats {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MessageStatsData` is never used
[INFO] [stdout]   --> src/msg_static.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub type MessageStatsData = Vec<MessageStats>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/msg_static.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl CpuStats {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 92 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_send.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             update_message_stats(msg_type, true, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         gtp_send_delete_session_response(session.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:463:9
[INFO] [stdout]     |
[INFO] [stdout] 463 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:472:9
[INFO] [stdout]     |
[INFO] [stdout] 472 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:481:9
[INFO] [stdout]     |
[INFO] [stdout] 481 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:521:25
[INFO] [stdout]     |
[INFO] [stdout] 521 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:544:5
[INFO] [stdout]     |
[INFO] [stdout] 544 |     gtp_send_modify_bearer_response (session.clone(), pdn.lbi);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:616:25
[INFO] [stdout]     |
[INFO] [stdout] 616 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:673:13
[INFO] [stdout]     |
[INFO] [stdout] 673 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:692:21
[INFO] [stdout]     |
[INFO] [stdout] 692 |                     update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:707:13
[INFO] [stdout]     |
[INFO] [stdout] 707 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:736:21
[INFO] [stdout]     |
[INFO] [stdout] 736 |                     update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:764:25
[INFO] [stdout]     |
[INFO] [stdout] 764 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_MISSING_OR_UNKNOWN_APN);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:822:25
[INFO] [stdout]     |
[INFO] [stdout] 822 |                         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_DENIED_IN_RAT);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:844:13
[INFO] [stdout]     |
[INFO] [stdout] 844 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_TEMPORARILY_REJECTED);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:861:17
[INFO] [stdout]     |
[INFO] [stdout] 861 |                 update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:870:21
[INFO] [stdout]     |
[INFO] [stdout] 870 |                     update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:882:13
[INFO] [stdout]     |
[INFO] [stdout] 882 |             update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:893:17
[INFO] [stdout]     |
[INFO] [stdout] 893 |                 update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:901:17
[INFO] [stdout]     |
[INFO] [stdout] 901 |                 update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:913:2
[INFO] [stdout]     |
[INFO] [stdout] 913 |     gtp_send_create_session_response(session).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 913 |     let _ = gtp_send_create_session_response(session).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:928:9
[INFO] [stdout]     |
[INFO] [stdout] 928 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:931:5
[INFO] [stdout]     |
[INFO] [stdout] 931 |     update_message_stats(pkt_info.header.t, true, 0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:947:5
[INFO] [stdout]     |
[INFO] [stdout] 947 |     gtp_send_echo_response(peer , restart_counter).await;   
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 947 |     let _ = gtp_send_echo_response(peer , restart_counter).await;   
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     update_message_stats(pkt_info.header.t, true, 0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:980:13
[INFO] [stdout]     |
[INFO] [stdout] 980 |             recv_echo_req(pkt_info).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 980 |             let _ = recv_echo_req(pkt_info).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:983:13
[INFO] [stdout]     |
[INFO] [stdout] 983 |             find_pkt_in_queue(peer.ip, pkt_info.header.s);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:984:13
[INFO] [stdout]     |
[INFO] [stdout] 984 |             recv_echo_rsp(pkt_info).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 984 |             let _ = recv_echo_rsp(pkt_info).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:989:13
[INFO] [stdout]     |
[INFO] [stdout] 989 |             recv_crte_sess_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 989 |             let _ = recv_crte_sess_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:994:13
[INFO] [stdout]     |
[INFO] [stdout] 994 |             recv_modify_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 994 |             let _ = recv_modify_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtpv2_recv.rs:998:13
[INFO] [stdout]     |
[INFO] [stdout] 998 |             recv_create_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 998 |             let _ = recv_create_bearer_req(pkt_info, teid_list, sess_list).await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/gtpv2_recv.rs:1003:13
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             recv_delete_session_req( pkt_info, teid_list, sess_list).await;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             let _ = recv_delete_session_req( pkt_info, teid_list, sess_list).await;
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]     --> src/gtpv2_recv.rs:1052:9
[INFO] [stdout]      |
[INFO] [stdout] 1052 |         update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_LENGTH);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/gtp_msg.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn encode<'a> (p:&'a mut [u8], p_flag: bool,
[INFO] [stdout]    |                           -- the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 37 |     -> (&[u8], usize)
[INFO] [stdout]    |         ^^^^^ the same lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     -> (&'a [u8], usize)
[INFO] [stdout]    |          ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/gtp_msg.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] );
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let _ = &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] );
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |     let _ = send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 |     send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 300 |     let _ = send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:345:5
[INFO] [stdout]     |
[INFO] [stdout] 345 |     send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 345 |     let _ = send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:391:5
[INFO] [stdout]     |
[INFO] [stdout] 391 |     send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 391 |     let _ = send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gtp_msg.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let _ = send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `QoS` should have a snake case name
[INFO] [stdout]    --> src/session.rs:106:6
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub QoS:        BearerQos,
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case: `qo_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.79s
[INFO] running `Command { std: "docker" "inspect" "2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b", kill_on_drop: false }`
[INFO] [stdout] 2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b
