diff options
author | shemminger <shemminger> | 2006-03-22 00:07:49 +0000 |
---|---|---|
committer | shemminger <shemminger> | 2006-03-22 00:07:49 +0000 |
commit | 267480f55383cb9f7ddf82412814d3147510df01 (patch) | |
tree | c96e7386b5c017e76da7364a1d24bc004fcaeab8 /tc/f_u32.c | |
parent | 7b5657545dc246ae37690d660597e8fa37040205 (diff) |
Backout the 2.4 utsname hash patch.
Diffstat (limited to 'tc/f_u32.c')
-rw-r--r-- | tc/f_u32.c | 18 |
1 files changed, 3 insertions, 15 deletions
@@ -17,7 +17,6 @@ #include <syslog.h> #include <fcntl.h> #include <sys/socket.h> -#include <sys/utsname.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> @@ -877,7 +876,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle, int argc, char ** } else if (strcmp(*argv, "sample") == 0) { __u32 hash; unsigned divisor = 0x100; - struct utsname utsname; + struct { struct tc_u32_sel sel; struct tc_u32_key keys[4]; @@ -902,19 +901,8 @@ static int u32_parse_opt(struct filter_util *qu, char *handle, int argc, char ** NEXT_ARG(); } hash = sel2.sel.keys[0].val&sel2.sel.keys[0].mask; - uname(&utsname); - if (strncmp(utsname.release, "2.4.", 4) == 0) { - hash ^= hash>>16; - hash ^= hash>>8; - } - else { - __u32 mask = sel2.sel.keys[0].mask; - while (mask && !(mask & 1)) { - mask >>= 1; - hash >>= 1; - } - hash &= 0xFF; - } + hash ^= hash>>16; + hash ^= hash>>8; htid = ((hash%divisor)<<12)|(htid&0xFFF00000); sample_ok = 1; continue; |