1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
# "if", basic DSCP ------------------------------------------------------------
tcc | sed '/.*match /{s///;s/ classid .*//p;};d'
#include "fields.tc"
dsmark (indices 64) {
class (0) if (ip_tos & 0xfc) == 0x28;
}
EOF
u8 0x28 0xfc at 1
# "if", better DSCP, shift value ----------------------------------------------
tcc | sed '/.*match /{s///;s/ classid .*//p;};d'
#include "fields.tc"
dsmark (indices 64) {
class (0) if (ip_tos & 0xfc) == (0xa << 2);
}
EOF
u8 0x28 0xfc at 1
# "if", better DSCP, shift access ---------------------------------------------
tcc | sed '/.*match /{s///;s/ classid .*//p;};d'
#include "fields.tc"
dsmark (indices 64) {
class (0) if (ip_tos & 0xfc) >> 2 == 0xa;
}
EOF
u8 0x28 0xfc at 1
# "if", better DSCP, shift mask and access ------------------------------------
tcc | sed '/.*match /{s///;s/ classid .*//p;};d'
#include "fields.tc"
dsmark (indices 64) {
class (0) if ((ip_tos >> 2) & (0xfc >> 2)) == 0xa;
}
EOF
u8 0x28 0xfc at 1
# "if", DSCP using field ------------------------------------------------------
tcc | sed '/.*match /{s///;s/ classid .*//p;};d'
#include "fields.tc"
field dscp = (ip_tos & 0xfc) >> 2;
dsmark (indices 64) {
class (0) if dscp == 0xa;
}
EOF
u8 0x28 0xfc at 1
|