123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- --- a/tc/Makefile
- +++ b/tc/Makefile
- @@ -44,6 +44,7 @@ TCMODULES += m_mirred.o
- TCMODULES += m_nat.o
- TCMODULES += m_pedit.o
- TCMODULES += m_skbedit.o
- +TCMODULES += m_connmark.o
- TCMODULES += m_csum.o
- TCMODULES += m_simple.o
- TCMODULES += m_vlan.o
- --- /dev/null
- +++ b/tc/m_connmark.c
- @@ -0,0 +1,74 @@
- +/*
- + * m_connmark.c Connection tracking marking import
- + *
- + * Copyright (c) 2011 Felix Fietkau <nbd@openwrt.org>
- + *
- + * This program is free software; you can redistribute it and/or modify it
- + * under the terms and conditions of the GNU General Public License,
- + * version 2, as published by the Free Software Foundation.
- + *
- + * This program is distributed in the hope it will be useful, but WITHOUT
- + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- + * more details.
- + *
- + * You should have received a copy of the GNU General Public License along with
- + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- + * Place - Suite 330, Boston, MA 02111-1307 USA.
- + */
- +
- +#include <stdio.h>
- +#include <stdlib.h>
- +#include <unistd.h>
- +#include <string.h>
- +#include "utils.h"
- +#include "tc_util.h"
- +
- +static void
- +explain(void)
- +{
- + fprintf(stderr, "Usage: ... connmark\n");
- +}
- +
- +static void
- +usage(void)
- +{
- + explain();
- + exit(-1);
- +}
- +
- +static int
- +parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
- + struct nlmsghdr *n)
- +{
- + int argc = *argc_p;
- + char **argv = *argv_p;
- +
- + if (matches(*argv, "connmark") != 0)
- + return -1;
- +
- + NEXT_ARG();
- +
- + if (matches(*argv, "help") == 0)
- + usage();
- +
- + *argc_p = argc;
- + *argv_p = argv;
- + return 0;
- +}
- +
- +static int print_connmark(struct action_util *au, FILE *f, struct rtattr *arg)
- +{
- + if (arg == NULL)
- + return -1;
- +
- + fprintf(f, " connmark");
- +
- + return 0;
- +}
- +
- +struct action_util connmark_action_util = {
- + .id = "connmark",
- + .parse_aopt = parse_connmark,
- + .print_aopt = print_connmark,
- +};
|