[PATCH 1/2] remove the obsolete src/cls directory
Thomas Haller
thaller at redhat.com
Fri Jan 31 18:48:11 EST 2014
Hi Cong,
both patches merged to upstream master.
Thank you!!
Thomas
On Wed, 2014-01-29 at 15:45 -0800, Cong Wang wrote:
> Signed-off-by: Cong Wang <xiyou.wangcong at gmail.com>
> ---
> src/cls/basic.c | 90 -----------------------------------------------
> src/cls/cgroup.c | 78 -----------------------------------------
> src/cls/utils.c | 105 -------------------------------------------------------
> src/cls/utils.h | 51 ---------------------------
> 4 files changed, 324 deletions(-)
> delete mode 100644 src/cls/basic.c
> delete mode 100644 src/cls/cgroup.c
> delete mode 100644 src/cls/utils.c
> delete mode 100644 src/cls/utils.h
>
> diff --git a/src/cls/basic.c b/src/cls/basic.c
> deleted file mode 100644
> index df1c112..0000000
> --- a/src/cls/basic.c
> +++ /dev/null
> @@ -1,90 +0,0 @@
> -/*
> - * src/cls/basic.c Basic Classifier
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation version 2 of the License.
> - *
> - * Copyright (c) 2008 Thomas Graf <tgraf at suug.ch>
> - */
> -
> -#include "utils.h"
> -#include <netlink/route/cls/basic.h>
> -#include <netlink/route/cls/ematch.h>
> -
> -static void print_usage(void)
> -{
> - printf(
> -"Usage: ... basic [OPTIONS]...\n"
> -"\n"
> -"Options\n"
> -" -h, --help Show this help.\n"
> -" -e, --ematch=MATCH Extended match (See --ematch help).\n"
> -" -c, --classid=HANDLE Target class to classify matching packets to.\n"
> - );
> - exit(0);
> -}
> -
> -static void basic_parse_argv(struct rtnl_cls *cls, int argc, char **argv)
> -{
> - uint32_t classid;
> -
> - for (;;) {
> - int c, optidx = 0, err;
> - static struct option long_opts[] = {
> - { "help", 0, 0, 'h' },
> - { "ematch", 1, 0, 'e' },
> - { "classid", 1, 0, 'c' },
> - { 0, 0, 0, 0 }
> - };
> -
> - c = getopt_long(argc, argv, "he:c:", long_opts, &optidx);
> - if (c == -1)
> - break;
> -
> - switch (c) {
> - case '?':
> - exit(NLE_INVAL);
> -
> - case 'h':
> - print_usage();
> -
> - case 'e':
> -#if 0
> - if ((err = parse_ematch_syntax(optarg, &tree)) < 0)
> - fatal(err, "Error while parsing ematch: %s",
> - nl_geterror(err));
> -
> - if ((err = rtnl_basic_set_ematch(cls, tree)) < 0)
> - fatal(err, "Unable to set ematch: %s",
> - nl_geterror(err));
> -#endif
> - break;
> -
> - case 'c':
> - if ((err = rtnl_tc_str2handle(optarg, &classid)) < 0)
> - fatal(err, "Invalid classid \"%s\": %s",
> - optarg, nl_geterror(err));
> -
> - if ((err = rtnl_basic_set_classid(cls, classid)) < 0)
> - fatal(err, "Unable to set classid: %s",
> - nl_geterror(err));
> - break;
> - }
> - }
> -}
> -
> -static struct cls_module basic_module = {
> - .name = "basic",
> - .parse_argv = basic_parse_argv,
> -};
> -
> -static void __attribute__ ((constructor)) basic_init(void)
> -{
> - register_cls_module(&basic_module);
> -}
> -
> -static void __attribute__ ((destructor)) basic_exit(void)
> -{
> - unregister_cls_module(&basic_module);
> -}
> diff --git a/src/cls/cgroup.c b/src/cls/cgroup.c
> deleted file mode 100644
> index ad0392f..0000000
> --- a/src/cls/cgroup.c
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -/*
> - * src/cls/cgroup.c Control Groups Classifier
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation version 2 of the License.
> - *
> - * Copyright (c) 2009 Thomas Graf <tgraf at suug.ch>
> - */
> -
> -#include "utils.h"
> -#include <netlink/route/cls/cgroup.h>
> -#include <netlink/route/cls/ematch.h>
> -
> -static void print_usage(void)
> -{
> - printf(
> -"Usage: ... cgroup [OPTIONS]...\n"
> -"\n"
> -"Options\n"
> -" -h, --help Show this help.\n"
> -" -e, --ematch=MATCH Extended match (See --ematch help).\n"
> -" -c, --classid=HANDLE Target class to classify matching packets to.\n"
> - );
> - exit(0);
> -}
> -
> -static void basic_parse_argv(struct rtnl_cls *cls, int argc, char **argv)
> -{
> - for (;;) {
> - int c, optidx = 0;
> - static struct option long_opts[] = {
> - { "help", 0, 0, 'h' },
> - { "ematch", 1, 0, 'e' },
> - { "classid", 1, 0, 'c' },
> - { 0, 0, 0, 0 }
> - };
> -
> - c = getopt_long(argc, argv, "he:c:", long_opts, &optidx);
> - if (c == -1)
> - break;
> -
> - switch (c) {
> - case '?':
> - exit(NLE_INVAL);
> -
> - case 'h':
> - print_usage();
> -
> -#if 0
> - case 'e':
> - if ((err = parse_ematch_syntax(optarg, &tree)) < 0)
> - fatal(err, "Error while parsing ematch: %s",
> - nl_geterror(err));
> -
> - if ((err = rtnl_basic_set_ematch(cls, tree)) < 0)
> - fatal(err, "Unable to set ematch: %s",
> - nl_geterror(err));
> - break;
> -#endif
> - }
> - }
> -}
> -
> -static struct cls_module cgroup_module = {
> - .name = "cgroup",
> - .parse_argv = basic_parse_argv,
> -};
> -
> -static void __init cgroup_init(void)
> -{
> - register_cls_module(&cgroup_module);
> -}
> -
> -static void __exit cgroup_exit(void)
> -{
> - unregister_cls_module(&cgroup_module);
> -}
> diff --git a/src/cls/utils.c b/src/cls/utils.c
> deleted file mode 100644
> index ef6603b..0000000
> --- a/src/cls/utils.c
> +++ /dev/null
> @@ -1,105 +0,0 @@
> -/*
> - * src/cls-utils.c Classifier Helpers
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation version 2 of the License.
> - *
> - * Copyright (c) 2008-2009 Thomas Graf <tgraf at suug.ch>
> - */
> -
> -#include "utils.h"
> -
> -struct rtnl_cls *nlt_alloc_cls(void)
> -{
> - struct rtnl_cls *cls;
> -
> - cls = rtnl_cls_alloc();
> - if (!cls)
> - fatal(ENOMEM, "Unable to allocate classifier object");
> -
> - return cls;
> -}
> -
> -void parse_dev(struct rtnl_cls *cls, struct nl_cache *link_cache, char *arg)
> -{
> - int ival;
> -
> - if (!(ival = rtnl_link_name2i(link_cache, arg)))
> - fatal(ENOENT, "Link \"%s\" does not exist", arg);
> -
> - rtnl_cls_set_ifindex(cls, ival);
> -}
> -
> -void parse_prio(struct rtnl_cls *cls, char *arg)
> -{
> - uint32_t prio = parse_u32(arg);
> - rtnl_cls_set_prio(cls, prio);
> -}
> -
> -void parse_parent(struct rtnl_cls *cls, char *arg)
> -{
> - uint32_t parent;
> - int err;
> -
> - if ((err = rtnl_tc_str2handle(arg, &parent)) < 0)
> - fatal(err, "Unable to parse handle \"%s\": %s",
> - arg, nl_geterror(err));
> -
> - rtnl_cls_set_parent(cls, parent);
> -}
> -
> -void parse_handle(struct rtnl_cls *cls, char *arg)
> -{
> - uint32_t handle;
> - int err;
> -
> - if ((err = rtnl_tc_str2handle(arg, &handle)) < 0)
> - fatal(err, "Unable to parse handle \"%s\": %s",
> - arg, nl_geterror(err));
> -
> - rtnl_cls_set_handle(cls, handle);
> -}
> -
> -void parse_proto(struct rtnl_cls *cls, char *arg)
> -{
> - int proto = nl_str2ether_proto(arg);
> - if (proto < 0)
> - fatal(proto, "Unable to parse protocol \"%s\": %s",
> - arg, nl_geterror(proto));
> - rtnl_cls_set_protocol(cls, proto);
> -}
> -
> -static NL_LIST_HEAD(cls_modules);
> -
> -struct cls_module *lookup_cls_mod(struct rtnl_cls_ops *ops)
> -{
> - struct cls_module *mod;
> -
> - nl_list_for_each_entry(mod, &cls_modules, list) {
> - if (mod->ops == ops)
> - return mod;
> - }
> -
> - return NULL;
> -}
> -
> -void register_cls_module(struct cls_module *mod)
> -{
> - struct rtnl_cls_ops *ops;
> -
> - if (!(ops = __rtnl_cls_lookup_ops(mod->name)))
> - fatal(ENOENT, "Could not locate classifier module \"%s\"",
> - mod->name);
> -
> - if (lookup_cls_mod(ops) != NULL)
> - fatal(EEXIST, "Duplicate classifier module registration.");
> -
> - mod->ops = ops;
> - nl_list_add_tail(&mod->list, &cls_modules);
> -}
> -
> -void unregister_cls_module(struct cls_module *mod)
> -{
> - nl_list_del(&mod->list);
> -}
> diff --git a/src/cls/utils.h b/src/cls/utils.h
> deleted file mode 100644
> index 1a8ee9b..0000000
> --- a/src/cls/utils.h
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -/*
> - * src/cls-utils.h Classifier Helpers
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation version 2 of the License.
> - *
> - * Copyright (c) 2008-2009 Thomas Graf <tgraf at suug.ch>
> - */
> -
> -#ifndef __CLS_UTILS_H_
> -#define __CLS_UTILS_H_
> -
> -#include "../utils.h"
> -#include <netlink/route/classifier-modules.h>
> -#include <netlink/route/cls/ematch.h>
> -
> -struct cls_module
> -{
> - const char * name;
> - struct rtnl_cls_ops * ops;
> - void (*parse_argv)(struct rtnl_cls *, int, char **);
> - struct nl_list_head list;
> -};
> -
> -extern struct cls_module *lookup_cls_mod(struct rtnl_cls_ops *);
> -extern void register_cls_module(struct cls_module *);
> -extern void unregister_cls_module(struct cls_module *);
> -
> -struct ematch_module
> -{
> - int kind;
> - struct rtnl_ematch_ops *ops;
> - void (*parse_argv)(struct rtnl_ematch *, int, char **);
> - struct nl_list_head list;
> -};
> -
> -extern struct ematch_module *lookup_ematch_mod(struct rtnl_ematch_ops *);
> -extern void register_ematch_module(struct ematch_module *);
> -extern void unregister_ematch_module(struct ematch_module *);
> -
> -extern struct rtnl_cls *nlt_alloc_cls(void);
> -extern void parse_dev(struct rtnl_cls *, struct nl_cache *, char *);
> -extern void parse_prio(struct rtnl_cls *, char *);
> -extern void parse_parent(struct rtnl_cls *, char *);
> -extern void parse_handle(struct rtnl_cls *, char *);
> -extern void parse_proto(struct rtnl_cls *, char *);
> -
> -extern int parse_ematch_syntax(const char *, struct rtnl_ematch_tree **);
> -
> -#endif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/libnl/attachments/20140201/a283164c/attachment.sig>
More information about the libnl
mailing list