netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Leblond <eric@inl.fr>
To: netfilter-devel@vger.kernel.org
Cc: pablo@netfilter.org, Eric Leblond <eric@inl.fr>
Subject: [ULOGD2 PATCH 05/18] Add SCTP support to BASE plugin.
Date: Mon,  1 Dec 2008 22:36:03 +0100	[thread overview]
Message-ID: <1228167376-22101-6-git-send-email-eric@inl.fr> (raw)
In-Reply-To: <1228167376-22101-1-git-send-email-eric@inl.fr>

THis patch adds basic support for SCTP in the BASE plugin.

Signed-off-by: Eric Leblond <eric@inl.fr>
---
 filter/raw2packet/ulogd_raw2packet_BASE.c |   53 +++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/filter/raw2packet/ulogd_raw2packet_BASE.c b/filter/raw2packet/ulogd_raw2packet_BASE.c
index c38c696..584d1c4 100644
--- a/filter/raw2packet/ulogd_raw2packet_BASE.c
+++ b/filter/raw2packet/ulogd_raw2packet_BASE.c
@@ -113,6 +113,10 @@ enum output_keys {
 	KEY_ARP_SPA,
 	KEY_ARP_THA,
 	KEY_ARP_TPA,
+	KEY_SCTP_SPORT,
+	KEY_SCTP_DPORT,
+	KEY_SCTP_CSUM,
+
 };
 
 static struct ulogd_key iphdr_rets[] = {
@@ -507,6 +511,21 @@ static struct ulogd_key iphdr_rets[] = {
 		.flags = ULOGD_RETF_NONE,
 		.name = "arp.daddr",
 	},
+	[KEY_SCTP_SPORT] = {
+		.type = ULOGD_RET_UINT16,
+		.flags = ULOGD_RETF_NONE,
+		.name = "sctp.sport", 
+	},
+	[KEY_SCTP_DPORT] = {
+		.type = ULOGD_RET_UINT16,
+		.flags = ULOGD_RETF_NONE,
+		.name = "sctp.dport", 
+	},
+	[KEY_SCTP_CSUM] = {
+		.type = ULOGD_RET_UINT32,
+		.flags = ULOGD_RETF_NONE,
+		.name = "sctp.csum",
+	},
 };
 
 /***********************************************************************
@@ -566,6 +585,37 @@ static int _interp_udp(struct ulogd_pluginstance *pi, struct udphdr *udph,
 }
 
 /***********************************************************************
+ * 			SCTP HEADER
+ ***********************************************************************/
+
+/* Section 3.1.  SCTP Common Header Format */
+typedef struct sctphdr {
+	__be16 source;
+	__be16 dest;
+	__be32 vtag;
+	__be32 checksum;
+} __attribute__((packed)) sctp_sctphdr_t;
+
+static int _interp_sctp(struct ulogd_pluginstance *pi, struct sctphdr *sctph,
+		       u_int32_t len)
+		
+{
+	struct ulogd_key *ret = pi->output.keys;
+
+	if (len < sizeof(struct sctphdr))
+		return ULOGD_IRET_OK;
+
+	ret[KEY_SCTP_SPORT].u.value.ui16 = ntohs(sctph->source);
+	ret[KEY_SCTP_SPORT].flags |= ULOGD_RETF_VALID;
+	ret[KEY_SCTP_DPORT].u.value.ui16 = ntohs(sctph->dest);
+	ret[KEY_SCTP_DPORT].flags |= ULOGD_RETF_VALID;
+	ret[KEY_SCTP_CSUM].u.value.ui32 = ntohl(sctph->checksum);
+	ret[KEY_SCTP_CSUM].flags |= ULOGD_RETF_VALID;
+	
+	return ULOGD_IRET_OK;
+}
+
+/***********************************************************************
  * 			ICMP HEADER
  ***********************************************************************/
 
@@ -688,6 +738,9 @@ static int _interp_iphdr(struct ulogd_pluginstance *pi, u_int32_t len)
 	case IPPROTO_ICMP:
 		_interp_icmp(pi, nexthdr, len);
 		break;
+	case IPPROTO_SCTP:
+		_interp_sctp(pi, nexthdr, len);
+		break;
 	case IPPROTO_AH:
 	case IPPROTO_ESP:
 		_interp_ahesp(pi, nexthdr, len);
-- 
1.5.6.3


  parent reply	other threads:[~2008-12-01 21:36 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-01 21:35 [ULOGD2 PATCH 0/18] Code cleaning, SCTP support, NFLOG logic fix Eric Leblond
2008-12-01 21:35 ` [ULOGD2 PATCH 01/18] add ukey_* function for key assignation Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 02/18] Modify usage of nflog_bind_pf function Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 03/18] Get rid of addressfamily variable in NFLOG input plugin Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 04/18] Document group 0 usage and suppress address_family Eric Leblond
2008-12-01 21:36 ` Eric Leblond [this message]
2008-12-01 21:36 ` [ULOGD2 PATCH 06/18] SCTP support for PRINTPKT Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 07/18] Add SCTP support to MySQL and PGSQL output Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 08/18] Treat nice function return Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 09/18] Fix stop function of NFCT plugin Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 10/18] Don't free pluginstance when leaving Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 11/18] Fix minor memory leak in NFLOG plugin Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 12/18] Call pluginstance stop function when exiting Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 13/18] Add SIGINT to list of terminal signal Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 14/18] Unload plugins when quitting Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 15/18] Introduce config_stop() function Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 16/18] Free stacks when exiting Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 17/18] Fix memory leak in destructor_nfct() Eric Leblond
2008-12-01 21:36 ` [ULOGD2 PATCH 18/18] Add valgrind compilation option Eric Leblond
2008-12-10 11:07 ` [ULOGD2 PATCH 0/18] Code cleaning, SCTP support, NFLOG logic fix Eric Leblond

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1228167376-22101-6-git-send-email-eric@inl.fr \
    --to=eric@inl.fr \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).