From patchwork Mon Mar 14 15:06:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neels Hofmeyr X-Patchwork-Id: 597090 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.osmocom.org (lists.osmocom.org [IPv6:2a01:4f8:191:444b::2:7]) by ozlabs.org (Postfix) with ESMTP id 3qP1Mv0MM5z9sCy for ; Tue, 15 Mar 2016 02:08:10 +1100 (AEDT) Received: from lists.osmocom.org (lists.osmocom.org [144.76.43.76]) by lists.osmocom.org (Postfix) with ESMTP id 90E501AC2F; Mon, 14 Mar 2016 15:08:09 +0000 (UTC) X-Original-To: openbsc@lists.osmocom.org Delivered-To: openbsc@lists.osmocom.org Received: from einhorn.in-berlin.de (einhorn.in-berlin.de [IPv6:2001:bf0:c000::1:8]) by lists.osmocom.org (Postfix) with ESMTP id 657831ABF1 for ; Mon, 14 Mar 2016 15:07:57 +0000 (UTC) X-Envelope-From: nhofmeyr@sysmocom.de X-Envelope-To: Received: from localhost (gw-01.freifunk.isp.faust2k.net [87.128.109.145]) (authenticated bits=0) by einhorn.in-berlin.de (8.14.4/8.14.4/Debian-4) with ESMTP id u2EF7ucM023628 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 14 Mar 2016 16:07:57 +0100 From: Neels Hofmeyr To: openbsc@lists.osmocom.org Subject: [PATCH 3/3] 04.08: add inline funcs for transaction id bits Date: Mon, 14 Mar 2016 16:06:48 +0100 Message-Id: <1457968008-15769-4-git-send-email-nhofmeyr@sysmocom.de> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1457968008-15769-1-git-send-email-nhofmeyr@sysmocom.de> References: <1457968008-15769-1-git-send-email-nhofmeyr@sysmocom.de> X-BeenThere: openbsc@lists.osmocom.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Development of OpenBSC, OsmoBSC, OsmoNITB, OsmoCSCN" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openbsc-bounces@lists.osmocom.org Sender: "OpenBSC" Various users of gsm48_hdr apply the same hardcoded shifts/bitmasks to obtain the transaction ID encoded in the upper nibble of the protocol discriminator. Centralize. Patch for openbsc.git will follow. --- include/osmocom/gsm/protocol/gsm_04_08.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 08f32b7..af9c2e9 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -763,6 +763,33 @@ static inline uint8_t gsm48_hdr_pdisc(struct gsm48_hdr *hdr) return pdisc; } +static inline uint8_t gsm48_hdr_trans_id(struct gsm48_hdr *hdr) +{ + /* + * 3GPP TS 24.007 version 12.0.0 Release 12, + * 11.2.3.1.3 Transaction identifier + */ + return (hdr->proto_discr & 0xf0) >> 4; +} + +static inline uint8_t gsm48_hdr_trans_id_flip_ti(struct gsm48_hdr *hdr) +{ + /* + * 3GPP TS 24.007 version 12.0.0 Release 12, + * 11.2.3.1.3 Transaction identifier + */ + return gsm48_hdr_trans_id(hdr) ^ 0x08; +} + +static inline uint8_t gsm48_hdr_trans_id_no_ti(struct gsm48_hdr *hdr) +{ + /* + * 3GPP TS 24.007 version 12.0.0 Release 12, + * 11.2.3.1.3 Transaction identifier + */ + return gsm48_hdr_trans_id(hdr) & 0x07; +} + static inline uint8_t gsm48_hdr_msg_type_r98(struct gsm48_hdr *hdr) { /*