All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Leblond <eric@inl.fr>
To: netfilter-devel@vger.kernel.org
Cc: Eric Leblond <eric@inl.fr>
Subject: [ULOGD PATCH 5/7] Add label support to PGSQL output module.
Date: Wed, 16 Apr 2008 15:22:39 +0200	[thread overview]
Message-ID: <1208352162501-git-send-email-eric@inl.fr> (raw)
In-Reply-To: <4805E566.7010902@netfilter.org>

This patch adds raw.label support to the PGSQL module. It creates a label_t
table to store the label of the packets.

Signed-off-by: Eric Leblond <eric@inl.fr>
---
:100644 100644 cfef267... c974744... M	doc/pgsql-ulogd2.sql
 doc/pgsql-ulogd2.sql |   40 ++++++++++++++++++++++++++++++++++------
 1 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/doc/pgsql-ulogd2.sql b/doc/pgsql-ulogd2.sql
index cfef267..c974744 100644
--- a/doc/pgsql-ulogd2.sql
+++ b/doc/pgsql-ulogd2.sql
@@ -25,6 +25,7 @@ CREATE TABLE _extensions (
   join_name varchar(64) NOT NULL
 ) WITH (OIDS=FALSE);
 
+DROP TABLE IF EXISTS label_t CASCADE;
 DROP TABLE IF EXISTS mac CASCADE;
 DROP TABLE IF EXISTS tcp CASCADE;
 DROP TABLE IF EXISTS udp CASCADE;
@@ -65,6 +66,13 @@ CREATE INDEX ulog2_ip_saddr ON ulog2(ip_saddr_str);
 CREATE INDEX ulog2_ip_daddr ON ulog2(ip_daddr_str);
 CREATE INDEX ulog2_timestamp ON ulog2(timestamp);
 
+CREATE TABLE label_t (
+  _label_id bigint PRIMARY KEY UNIQUE NOT NULL,
+  label smallint default NULL
+) WITH (OIDS=FALSE);
+
+CREATE INDEX label ON label_t(label);
+
 CREATE TABLE mac (
   _mac_id bigint PRIMARY KEY UNIQUE NOT NULL,
   mac_saddr macaddr default NULL,
@@ -191,10 +199,12 @@ CREATE OR REPLACE VIEW ulog AS
         icmpv6_echoseq,
         icmpv6_csum,
         mac_saddr AS mac_saddr_str,
-        mac_protocol AS oob_protocol
+        mac_protocol AS oob_protocol,
+        label AS raw_label
         FROM ulog2 LEFT JOIN tcp ON ulog2._id = tcp._tcp_id LEFT JOIN udp ON ulog2._id = udp._udp_id
                 LEFT JOIN icmp ON ulog2._id = icmp._icmp_id LEFT JOIN mac ON ulog2._id = mac._mac_id
-                LEFT JOIN icmpv6 ON ulog2._id = icmpv6._icmpv6_id;
+                LEFT JOIN icmpv6 ON ulog2._id = icmpv6._icmpv6_id
+                LEFT JOIN label_t ON ulog2._id = label_t._label_id;
 
 -- shortcuts
 CREATE OR REPLACE VIEW view_tcp_quad AS
@@ -306,6 +316,8 @@ INSERT INTO _extensions (ext_name,table_name,join_name) VALUES
 
 CREATE OR REPLACE FUNCTION ULOG2_DROP_FOREIGN_KEYS()
 RETURNS void AS $$
+  ALTER TABLE label_t DROP CONSTRAINT label_id_fk;
+  ALTER TABLE mac DROP CONSTRAINT mac_id_fk;
   ALTER TABLE icmpv6 DROP CONSTRAINT icmpv6_id_fk;
   ALTER TABLE icmp DROP CONSTRAINT icmp_id_fk;
   ALTER TABLE udp  DROP CONSTRAINT udp_id_fk;
@@ -319,6 +331,8 @@ RETURNS void AS $$
   ALTER TABLE udp  ADD CONSTRAINT udp_id_fk  FOREIGN KEY (_udp_id)  REFERENCES ulog2(_id);
   ALTER TABLE icmp ADD CONSTRAINT icmp_id_fk FOREIGN KEY (_icmp_id) REFERENCES ulog2(_id);
   ALTER TABLE icmpv6 ADD CONSTRAINT icmpv6_id_fk FOREIGN KEY (_icmpv6_id) REFERENCES ulog2(_id);
+  ALTER TABLE mac ADD CONSTRAINT mac_id_fk FOREIGN KEY (_mac_id) REFERENCES ulog2(_id);
+  ALTER TABLE label_t ADD CONSTRAINT label_id_fk FOREIGN KEY (_label_id) REFERENCES ulog2(_id);
 $$ LANGUAGE SQL SECURITY INVOKER;
 
 
@@ -433,6 +447,16 @@ RETURNS bigint AS $$
         SELECT currval('ulog2__id_seq');
 $$ LANGUAGE SQL SECURITY INVOKER;
 
+CREATE OR REPLACE FUNCTION INSERT_STATE(
+                IN label_id bigint,
+                IN label integer
+        )
+RETURNS bigint AS $$
+        INSERT INTO label_t (_label_id,label)
+                VALUES ($1,$2);
+        SELECT currval('ulog2__id_seq');
+$$ LANGUAGE SQL SECURITY INVOKER;
+
 CREATE OR REPLACE FUNCTION INSERT_MAC(
                 IN mac_id bigint,
                 IN mac_saddr macaddr,
@@ -492,7 +516,8 @@ CREATE OR REPLACE FUNCTION INSERT_PACKET_FULL(
                 IN icmpv6_echoseq integer,
                 IN icmpv6_csum integer,
                 IN mac_saddr varchar(32),
-                IN mac_protocol integer
+                IN mac_protocol integer,
+                IN label integer
         )
 RETURNS bigint AS $$
 DECLARE
@@ -511,13 +536,13 @@ BEGIN
         IF (mac_saddr IS NOT NULL) THEN
                 PERFORM INSERT_MAC(_id,$45::macaddr,$46);
         END IF;
+        IF (label IS NOT NULL) THEN
+                PERFORM INSERT_STATE(_id,$47);
+        END IF;
         RETURN _id;
 END
 $$ LANGUAGE plpgsql SECURITY INVOKER;
 
-
-
-
 CREATE OR REPLACE FUNCTION DELETE_PACKET(
                 IN _packet_id bigint
         )
@@ -526,6 +551,8 @@ RETURNS void AS $$
   DELETE FROM icmp  WHERE icmp._icmp_id = $1;
   DELETE FROM tcp   WHERE tcp._tcp_id   = $1;
   DELETE FROM udp   WHERE udp._udp_id   = $1;
+  DELETE FROM mac   WHERE mac._mac_id   = $1;
+  DELETE FROM label_t   WHERE label_t._label_id   = $1;
   DELETE FROM ulog2 WHERE ulog2._id     = $1;
 $$ LANGUAGE SQL SECURITY INVOKER;
 
@@ -564,6 +591,7 @@ RETURNS void AS $$
   DELETE FROM tcp WHERE _tcp_id NOT IN (SELECT _id FROM ulog2);
   -- XXX note: could be rewritten (need to see what is more efficient) as:
   -- DELETE FROM tcp WHERE _tcp_id IN (SELECT tcp._tcp_id FROM tcp LEFT OUTER JOIN ulog2  ON (tcp._tcp_id = ulog2._id) WHERE ulog2._id IS NULL);
+  DELETE FROM label_t WHERE _label_id NOT IN (SELECT _id FROM ulog2);
   DELETE FROM mac WHERE _mac_id NOT IN (SELECT _id FROM ulog2);
   DELETE FROM udp WHERE _udp_id NOT IN (SELECT _id FROM ulog2);
   DELETE FROM icmp WHERE _icmp_id NOT IN (SELECT _id FROM ulog2);
-- 
1.5.2.5


  parent reply	other threads:[~2008-04-16 13:22 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-23 16:25 [ULOGD PATCH 0/14] Misc improvements and bugfixes Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 01/14] Fix SQL reconnection algorithm Eric Leblond
2008-04-05 13:55   ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 02/14] Suppress ip_as_string configuration variable Eric Leblond
2008-04-05 15:05   ` Pablo Neira Ayuso
2008-04-05 19:00     ` Eric Leblond
2008-04-07 23:50       ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 03/14] Fix type of raw.mac_len key in NFLOG Eric Leblond
2008-04-05 14:30   ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 04/14] Fix type of raw.mac_len key in ULOG Eric Leblond
2008-04-05 14:33   ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 05/14] New MAC2STR plugin for hwmac address conversion Eric Leblond
2008-04-05 14:35   ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 06/14] MAC address handling in MySQL output plugin Eric Leblond
2008-04-05 14:51   ` Pablo Neira Ayuso
2008-04-05 19:03     ` Eric Leblond
2008-04-07 23:52       ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 07/14] MAC address handling in PgSQL " Eric Leblond
2008-04-05 14:52   ` Pablo Neira Ayuso
2008-03-23 16:25 ` [ULOGD PATCH 08/14] Add state option to NFLOG input plugin Eric Leblond
2008-04-05 15:10   ` Pablo Neira Ayuso
2008-04-05 19:15     ` Eric Leblond
2008-04-07 23:56       ` Pablo Neira Ayuso
2008-04-10  4:56         ` Eric Leblond
2008-04-13  7:03           ` Eric Leblond
2008-04-16 11:39             ` Pablo Neira Ayuso
2008-04-16 13:22               ` [ULOGD PATCH 0/7] Resend, add label to SQL logging Eric Leblond
2008-04-16 13:22               ` [ULOGD PATCH 1/7] Add label option to NFLOG input plugin Eric Leblond
2008-04-27  7:27                 ` Pablo Neira Ayuso
2008-04-27  8:44                   ` Eric Leblond
2008-04-28 13:44                     ` Pablo Neira Ayuso
2008-04-28 13:53                       ` [ULOGD PATCH 0/3] Resend: rename label to numeric_label Eric Leblond
2008-04-28 13:53                         ` [PATCH 1/3] Add numeric_label option to ULOG input plugin Eric Leblond
2008-04-28 13:53                           ` [PATCH 2/3] Add numeric_label option to NFLOG " Eric Leblond
2008-04-28 13:53                             ` [PATCH 3/3] Update default configuration to fit last changes Eric Leblond
2008-04-29 14:26                         ` [ULOGD PATCH 0/3] Resend: rename label to numeric_label Pablo Neira Ayuso
2008-04-16 13:22               ` [ULOGD PATCH 2/7] Add label support to MySQL schema Eric Leblond
2008-04-16 13:22               ` [ULOGD PATCH 3/7] Add label option to ULOG input plugin Eric Leblond
2008-04-16 13:22               ` [ULOGD PATCH 4/7] Add hook output to ULOG input module Eric Leblond
2008-04-16 13:22               ` Eric Leblond [this message]
2008-04-16 13:22               ` [ULOGD PATCH 6/7] Update default configuration to fit last changes Eric Leblond
2008-04-16 13:22               ` [ULOGD PATCH 7/7] Convert SQL procedure to function in MySQL plugins Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 09/14] Add state support to MySQL schema Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 10/14] Add state option to ULOG input plugin Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 11/14] Add hook output to ULOG input module Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 12/14] Add state support to PGSQL output module Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 13/14] Update default configuration to fit last changes Eric Leblond
2008-03-23 16:25 ` [ULOGD PATCH 14/14] Fix computation of length of mac address Eric Leblond
2008-04-05 14:56   ` Pablo Neira Ayuso

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=1208352162501-git-send-email-eric@inl.fr \
    --to=eric@inl.fr \
    --cc=netfilter-devel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.