]> git.pld-linux.org Git - packages/iproute2.git/commitdiff
- merged into iproute2-2.6.10-ss050124 release.
authorPaweł Sikora <pluto@pld-linux.org>
Tue, 25 Jan 2005 09:45:34 +0000 (09:45 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    iproute2-match-nfmark-in-u32.patch -> 1.2

iproute2-match-nfmark-in-u32.patch [deleted file]

diff --git a/iproute2-match-nfmark-in-u32.patch b/iproute2-match-nfmark-in-u32.patch
deleted file mode 100644 (file)
index 6343d96..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
---- iproute2-2.6.9/tc/f_u32.c.orig     2004-11-04 15:38:53.000000000 +0200
-+++ iproute2-2.6.9/tc/f_u32.c  2004-11-09 13:59:00.000000000 +0200
-@@ -7,6 +7,7 @@
-  *            2 of the License, or (at your option) any later version.
-  *
-  * Authors:   Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
-+ *            Match mark added by Catalin(ux aka Dino) BOIE <catab at umbrella.ro> [5 nov 2004]
-  *
-  */
-@@ -33,7 +34,7 @@ static void explain(void)
-       fprintf(stderr, "or         u32 divisor DIVISOR\n");
-       fprintf(stderr, "\n");
-       fprintf(stderr, "Where: SELECTOR := SAMPLE SAMPLE ...\n");
--      fprintf(stderr, "       SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} } SAMPLE_ARGS\n");
-+      fprintf(stderr, "       SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} | mark } SAMPLE_ARGS\n");
-       fprintf(stderr, "       FILTERID := X:Y:Z\n");
- }
-@@ -590,9 +591,42 @@ done:
-       return res;
- }
-+static int parse_mark(int *argc_p, char ***argv_p, struct nlmsghdr *n)
-+{
-+      int res = -1;
-+      int argc = *argc_p;
-+      char **argv = *argv_p;
-+      struct tc_u32_mark mark;
-+
-+      if (argc <= 1)
-+              return -1;
-+
-+      if (get_u32(&mark.val, *argv, 0)) {
-+              fprintf(stderr, "Illegal \"mark\" value\n");
-+              return -1;
-+      }
-+      NEXT_ARG();
-+
-+      if (get_u32(&mark.mask, *argv, 0)) {
-+              fprintf(stderr, "Illegal \"mark\" mask\n");
-+              return -1;
-+      }
-+      NEXT_ARG();
-+
-+      if ((mark.val & mark.mask) != mark.val) {
-+              fprintf(stderr, "Illegal \"mark\" (impossible combination)\n");
-+              return -1;
-+      }
-+      addattr_l(n, MAX_MSG, TCA_U32_MARK, &mark, sizeof(mark));
-+      res = 0;
-+
-+      *argc_p = argc;
-+      *argv_p = argv;
-+      return res;
-+}
--static int parse_selector(int *argc_p, char ***argv_p, struct tc_u32_sel *sel)
-+static int parse_selector(int *argc_p, char ***argv_p, struct tc_u32_sel *sel, struct nlmsghdr *n)
- {
-       int argc = *argc_p;
-       char **argv = *argv_p;
-@@ -641,6 +675,12 @@ static int parse_selector(int *argc_p, c
-               res = parse_icmp(&argc, &argv, sel);
-               goto done;
-       }
-+      if (matches(*argv, "mark") == 0) {
-+              NEXT_ARG();
-+              res = parse_mark(&argc, &argv, n);
-+              goto done;
-+      }
-+
-       return -1;
- done:
-@@ -760,7 +800,7 @@ static int u32_parse_opt(struct filter_u
-       while (argc > 0) {
-               if (matches(*argv, "match") == 0) {
-                       NEXT_ARG();
--                      if (parse_selector(&argc, &argv, &sel.sel)) {
-+                      if (parse_selector(&argc, &argv, &sel.sel, n)) {
-                               fprintf(stderr, "Illegal \"match\"\n");
-                               return -1;
-                       }
-@@ -839,7 +879,7 @@ static int u32_parse_opt(struct filter_u
-                               struct tc_u32_key keys[4];
-                       } sel2;
-                       NEXT_ARG();
--                      if (parse_selector(&argc, &argv, &sel2.sel)) {
-+                      if (parse_selector(&argc, &argv, &sel2.sel, n)) {
-                               fprintf(stderr, "Illegal \"sample\"\n");
-                               return -1;
-                       }
-@@ -964,11 +1004,22 @@ static int u32_print_opt(struct filter_u
-               pf = RTA_DATA(tb[TCA_U32_PCNT]);
-       }
-+      if (sel && show_stats && NULL != pf)
-+              fprintf(f, " (rule hit %llu success %llu)",pf->rcnt,pf->rhit);
-+
-+      if (tb[TCA_U32_MARK]) {
-+              struct tc_u32_mark *mark = RTA_DATA(tb[TCA_U32_MARK]);
-+              if (RTA_PAYLOAD(tb[TCA_U32_MARK]) < sizeof(*mark)) {
-+                      fprintf(f, "\n  Invalid mark (kernel&iproute2 mismatch)\n");
-+              } else {
-+                      fprintf(f, "\n  mark 0x%04x 0x%04x (success %d)",
-+                              mark->val, mark->mask, mark->success);
-+              }
-+      }
-+
-       if (sel) {
-               int i;
-               struct tc_u32_key *key = sel->keys;
--              if (show_stats && NULL != pf)
--                      fprintf(f, " (rule hit %llu success %llu)",pf->rcnt,pf->rhit);
-               if (sel->nkeys) {
-                       for (i=0; i<sel->nkeys; i++, key++) {
-                               fprintf(f, "\n  match %08x/%08x at %s%d",
---- iproute2-2.6.9/include/linux/pkt_cls.h.orig        2004-11-04 15:42:27.000000000 +0200
-+++ iproute2-2.6.9/include/linux/pkt_cls.h     2004-11-09 13:58:15.000000000 +0200
-@@ -190,6 +190,7 @@ enum
-       TCA_U32_ACT,   
-       TCA_U32_INDEV,
-       TCA_U32_PCNT,
-+      TCA_U32_MARK,
-       __TCA_U32_MAX
- };
-@@ -224,6 +225,14 @@ struct tc_u32_pcnt
-       __u64 rhit;
-       __u64 kcnts[0];
- };
-+
-+struct tc_u32_mark
-+{
-+      __u32   val;
-+      __u32   mask;
-+      __u32   success;
-+};
-+
- /* Flags */
- #define TC_U32_TERMINAL               1
This page took 0.169741 seconds and 4 git commands to generate.