diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-13 17:15:26 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-13 17:16:28 +0100 |
commit | b1302b083e9d8f5dd60229570716f497ea61d26c (patch) | |
tree | dc3af06e33999dbc4fb270229418e17e9be03eec /src | |
parent | 32f9a59ab42f9c37908d3d4a9db341583ab516ac (diff) |
llc: Move the decision if a frame has expired into the LLC
This way the generation of the expiry information and the check
is at the same place. This should make reading the code more easy.
Diffstat (limited to 'src')
-rw-r--r-- | src/llc.cpp | 9 | ||||
-rw-r--r-- | src/llc.h | 1 | ||||
-rw-r--r-- | src/tbf.cpp | 5 |
3 files changed, 11 insertions, 4 deletions
diff --git a/src/llc.cpp b/src/llc.cpp index 2997ec1..c0c517f 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -102,3 +102,12 @@ void gprs_llc::calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct timeradd(&now, &csec, tv); } + +bool gprs_llc::is_frame_expired(struct timeval *tv_now, struct timeval *tv) +{ + /* Timeout is infinite */ + if (tv->tv_sec == 0 && tv->tv_usec == 0) + return false; + + return timercmp(tv_now, tv, >); +} @@ -28,6 +28,7 @@ */ struct gprs_llc { static void calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct timeval *tv); + static bool is_frame_expired(struct timeval *now, struct timeval *tv); void init(); void reset(); diff --git a/src/tbf.cpp b/src/tbf.cpp index 41a94bc..63c8070 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -689,10 +689,7 @@ struct msgb *gprs_rlcmac_tbf::llc_dequeue(bssgp_bvc_ctx *bctx) tv = (struct timeval *)msg->data; msgb_pull(msg, sizeof(*tv)); - /* Timeout is infinite */ - if (tv->tv_sec == 0 && tv->tv_usec == 0) - break; - if (timercmp(&tv_now, tv, >)) { + if (gprs_llc::is_frame_expired(&tv_now, tv)) { LOGP(DRLCMACDL, LOGL_NOTICE, "%s Discarding LLC PDU " "because lifetime limit reached\n", tbf_name(this)); |