From patchwork Wed Aug 18 05:03:44 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changli Gao X-Patchwork-Id: 61991 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1F375B70E1 for ; Wed, 18 Aug 2010 15:04:25 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751567Ab0HRFD6 (ORCPT ); Wed, 18 Aug 2010 01:03:58 -0400 Received: from mail-pz0-f46.google.com ([209.85.210.46]:60487 "EHLO mail-pz0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751493Ab0HRFD4 (ORCPT ); Wed, 18 Aug 2010 01:03:56 -0400 Received: by pzk26 with SMTP id 26so72589pzk.19 for ; Tue, 17 Aug 2010 22:03:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=XXwX/RGGtqzOfIWzfEURq2Hk69km2cMGMa3iBGqvs9U=; b=X+Wyb00BJuGRx/tXpofAvbuXDx2SgRNvu6QpgBBsxFadeLKCgI4VFbmv32XyZ1tlgl utfHS884hYaoXmoS8+ugV9fN/TXz6LKThgP/buXwmA1tS/AAWsnRWGIjrrjvmk/kqsez uTXgRybOrArcIY7t1b+shPlbxL3W43bVqb60g= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=DdBkZlrkBcoZcVM0FW3Z6JenVdb73bzT6Q9BQnB2+j4B0Sf3PF6rSXrkX1Y/n/8OE7 d7lzoIoNcZ0bSUfGULR7ijkommsyqDzilXpkIq4XEaksDcSkmsmdr0sn/HTvH1Nd83bL WgNWoi6nxhZThUNGjbb8cLMJIyuakX1z9kF7M= Received: by 10.114.133.15 with SMTP id g15mr9059566wad.72.1282107836484; Tue, 17 Aug 2010 22:03:56 -0700 (PDT) Received: from localhost.localdomain ([60.29.39.134]) by mx.google.com with ESMTPS id c10sm15764315wam.1.2010.08.17.22.03.52 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 17 Aug 2010 22:03:55 -0700 (PDT) From: Changli Gao To: "David S. Miller" Cc: Patrick McHardy , Jamal Hadi Salim , netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, Changli Gao Subject: [PATCH 3/8] net: introduce proto_ports_offset() Date: Wed, 18 Aug 2010 13:03:44 +0800 Message-Id: <1282107824-3507-1-git-send-email-xiaosuo@gmail.com> X-Mailer: git-send-email 1.7.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Introduce proto_ports_offset() for getting the position of the ports or SPI in the message of a protocol. Signed-off-by: Changli Gao --- include/linux/in.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/include/linux/in.h b/include/linux/in.h index 41d88a4..beeb6de 100644 --- a/include/linux/in.h +++ b/include/linux/in.h @@ -250,6 +250,25 @@ struct sockaddr_in { #ifdef __KERNEL__ +#include + +static inline int proto_ports_offset(int proto) +{ + switch (proto) { + case IPPROTO_TCP: + case IPPROTO_UDP: + case IPPROTO_DCCP: + case IPPROTO_ESP: /* SPI */ + case IPPROTO_SCTP: + case IPPROTO_UDPLITE: + return 0; + case IPPROTO_AH: /* SPI */ + return 4; + default: + return -EINVAL; + } +} + static inline bool ipv4_is_loopback(__be32 addr) { return (addr & htonl(0xff000000)) == htonl(0x7f000000);