]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/commitdiff
Fix byte order of ether address match for u32
authorStephen Hemminger <stephen.hemminger@vyatta.com>
Mon, 2 Aug 2010 18:55:30 +0000 (11:55 -0700)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Mon, 2 Aug 2010 18:55:30 +0000 (11:55 -0700)
The u32 key match was incorrect byte order when using ether source
or destination address matching.

tc/f_u32.c

index 31e13b52d63e246786744ceb114b06d2dc4e555b..d9d409143da92dad4adfad51ca29379a3a3549ad 100644 (file)
@@ -448,7 +448,6 @@ static int parse_ether_addr(int *argc_p, char ***argv_p,
        char **argv = *argv_p;
        __u8 addr[6];
        int offmask = 0;
-       __u32 key;
        int i;
 
        if (argc < 1)
@@ -469,10 +468,8 @@ static int parse_ether_addr(int *argc_p, char ***argv_p,
                        return -1;
        }
 
-       for (i = 0; i < 6; i += 2) {
-               key = *(__u16 *) (addr + i);
-               
-               res = pack_key16(sel, key, 0xFFFF, off + i, offmask);
+       for (i = 0; i < 6; i++) {
+               res = pack_key8(sel, addr[i], 0xFF, off + i, offmask);
                if (res < 0)
                        return -1;
        }