[Oisf-devel] [PATCH 5/9] decode: add support for SCTP protocol
Eric Leblond
eric at regit.org
Mon Feb 28 16:44:31 UTC 2011
This patch adds a new counter for SCTP and defines some
macros needed for SCTP support.
---
src/decode.c | 2 ++
src/decode.h | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/decode.c b/src/decode.c
index e7b69ba..dd7c79a 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -163,6 +163,8 @@ void DecodeRegisterPerfCounters(DecodeThreadVars *dtv, ThreadVars *tv)
SC_PERF_TYPE_UINT64, "NULL");
dtv->counter_udp = SCPerfTVRegisterCounter("decoder.udp", tv,
SC_PERF_TYPE_UINT64, "NULL");
+ dtv->counter_sctp = SCPerfTVRegisterCounter("decoder.sctp", tv,
+ SC_PERF_TYPE_UINT64, "NULL");
dtv->counter_icmpv4 = SCPerfTVRegisterCounter("decoder.icmpv4", tv,
SC_PERF_TYPE_UINT64, "NULL");
dtv->counter_icmpv6 = SCPerfTVRegisterCounter("decoder.icmpv6", tv,
diff --git a/src/decode.h b/src/decode.h
index e12482d..525065b 100644
--- a/src/decode.h
+++ b/src/decode.h
@@ -147,6 +147,18 @@ typedef struct Address_ {
SET_PORT(UDP_GET_DST_PORT((pkt)), *prt); \
} while (0)
+/* Set the SCTP ports into the Ports of the Packet.
+ * Make sure p->sctph is initialized and validated. */
+#define SET_SCTP_SRC_PORT(pkt, prt) do { \
+ SET_PORT(SCTP_GET_SRC_PORT((pkt)), *prt); \
+ } while (0)
+
+#define SET_SCTP_DST_PORT(pkt, prt) do { \
+ SET_PORT(SCTP_GET_DST_PORT((pkt)), *prt); \
+ } while (0)
+
+
+
#define GET_IPV4_SRC_ADDR_U32(p) ((p)->src.addr_data32[0])
#define GET_IPV4_DST_ADDR_U32(p) ((p)->dst.addr_data32[0])
#define GET_IPV4_SRC_ADDR_PTR(p) ((p)->src.addr_data32)
@@ -331,6 +343,8 @@ typedef struct Packet_
UDPVars udpvars;
UDPCache udpc;
+ SCTPHdr *sctph;
+
ICMPV4Hdr *icmpv4h;
ICMPV4Cache icmpv4c;
ICMPV4Vars icmpv4vars;
@@ -456,6 +470,7 @@ typedef struct DecodeThreadVars_
uint16_t counter_raw;
uint16_t counter_tcp;
uint16_t counter_udp;
+ uint16_t counter_sctp;
uint16_t counter_icmpv4;
uint16_t counter_icmpv6;
uint16_t counter_ppp;
@@ -542,6 +557,9 @@ typedef struct DecodeThreadVars_
if ((p)->udph != NULL) { \
CLEAR_UDP_PACKET((p)); \
} \
+ if ((p)->sctph != NULL) { \
+ CLEAR_SCTP_PACKET((p)); \
+ } \
if ((p)->icmpv4h != NULL) { \
CLEAR_ICMPV4_PACKET((p)); \
} \
--
1.7.1
More information about the Oisf-devel
mailing list