[flow-tools] flow-filter patch to support tag filtering

Horatio B. Bogbindero wyy@admu.edu.ph
Mon, 20 May 2002 14:03:38 +0800


This message is in MIME format.

---MOQ102187461897698d8b0363539328e612c900e612c5
Content-Type: text/plain; charset=iso-8859-1;q=1.0
Content-Transfer-Encoding: 8bit



first off, congratulation to mark for adding his much awaited tag support 
for flow-tools. (applause). this is a much more elegant solution to the 
billing and traffic accounting problem than the flow-split of migz and i. 

anyway, i would like to submit this patch for adding tag filtering support 
for flow-filter. i feel this is useful to tracing untagged traffic or 
specifically tagged traffic for diagnostics.

i will have to admit this is not a very elegant solution because i still 
used mark's 16bit load_lookup(). i simply split the input into two parts 
and load them into the two tables. if anybody can give me a better solution 
i would really appreciate it. 

cheers!

-------------------------------------------
William Emmanuel S. Yu
Ateneo Campus Network Group (AteneoCNG)
email  :  wyu at ateneo dot edu
web    :  http://CNG.ateneo.net/wyu/
phone  :  +63(2)4266001-4186
GPG    :  http://CNG.ateneo.net/wyu/wyy.pgp

---MOQ102187461897698d8b0363539328e612c900e612c5
Content-Type: application/octet-stream; name="flow-filter-0.57-tag-support"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="flow-filter-0.57-tag-support"

LS0tIGZsb3ctdG9vbHMtMC41Ny9zcmMvZmxvdy1maWx0ZXIuYwlTYXQgQXByIDIwIDA1OjA4OjQ4
IDIwMDIKKysrIGZsb3ctdG9vbHMtMC41Ny1kZXYvc3JjL2Zsb3ctZmlsdGVyLmMJTW9uIE1heSAy
MCAxNDowNjo0NyAyMDAyCkBAIC0yNCw2ICsyNCw4IEBACiAgKiBTVUNIIERBTUFHRS4KICAqCiAg
KiAgICAgICRJZDogZmxvdy1maWx0ZXIuYyx2IDEuMjMgMjAwMi8wNC8xOSAyMTowODo0OCBtYWYg
RXhwICQKKyAqCisgKiAwNTIwMjAwMiBmaWx0ZXIgYmFzZWQgb24gc3JjVGFnIG9yIGRzdFRhZwog
ICovCiAKICNpbmNsdWRlIDxzeXMvdGltZS5oPgpAQCAtNzMsNyArNzUsOCBAQAogICBzdHJ1Y3Qg
ZnRzZXQgZnRzZXQ7CiAgIHN0cnVjdCBmdHZlciBmdHY7CiAgIHN0cnVjdCBmdHByb2YgZnRwOwot
ICBpbnQgaSwgcmV0OworICBpbnQgaSwgcmV0LCB1cHBlciwgbG93ZXI7CisgIGxvbmcgajsKICAg
Y2hhciAqYWNsX2ZuYW1lLCAqYWNsX3N0ZF9zcmNfbmFtZSwgKmFjbF9zdGRfZHN0X25hbWU7CiAg
IGNoYXIgKmFjbF9leHRfbmFtZSwgKnN0ciwgKnN0cm07CiAgIGludCBhY2xfc3RkX3NyY19pbmRl
eCwgYWNsX3N0ZF9zcmNfaW5kZXgyOwpAQCAtODIsMTMgKzg1LDE2IEBACiAgIHN0cnVjdCBhY2xf
aXBfZXh0X2VudHJ5IHRtcF9leHQ7CiAgIGludCBmaWx0ZXJfaW5wdXQsIGZpbHRlcl9vdXRwdXQs
IGZpbHRlcl9zcmNwb3J0LCBmaWx0ZXJfZHN0cG9ydDsKICAgaW50IGZpbHRlcl9wcm90LCBmaWx0
ZXJfc3JjYXMsIGZpbHRlcl9kc3RhcywgZmlsdGVyX3RvcywgZmlsdGVyX3RjcF9mbGFnczsKKyAg
aW50IGZpbHRlcl9zcmN0YWcsIGZpbHRlcl9kc3R0YWc7CiAgIGNoYXIgaW5fdGJsWzY1NTM2XSwg
b3V0X3RibFs2NTUzNl0sIHNyY190YmxbNjU1MzZdLCBkc3RfdGJsWzY1NTM2XTsKICAgY2hhciBz
cmNhc190YmxbNjU1MzZdLCBkc3Rhc190YmxbNjU1MzZdLCB0b3NfdGJsWzY1NTM2XTsKLSAgY2hh
ciB0Y3BfZmxhZ3NfdGJsWzY1NTM2XTsKKyAgY2hhciB0Y3BfZmxhZ3NfdGJsWzY1NTM2XTsgCiAg
IGNoYXIgcHJvdF90YmxbMjU2XTsKKyAgY2hhciB1X3NyY3RhZ190YmxbNjU1MzZdLCBsX3NyY3Rh
Z190YmxbNjU1MzZdOworICBjaGFyIHVfZHN0dGFnX3RibFs2NTUzNl0sIGxfZHN0dGFnX3RibFs2
NTUzNl07CiAgIHVfY2hhciB0b3NfbWFzaywgdG9zLCB0Y3BfZmxhZ3NfbWFzaywgdGNwX2ZsYWdz
OwogICB1X2ludDY0IHRvdGFsX2Zsb3dzLCB4ZmxhZzsKLSAgY2hhciAqcmVjOworICBjaGFyICpy
ZWMsIHRlbXBbMTI4XTsKICAgaW50IGZpcnN0X21hdGNoID0gMDsKIAogICAvKiBpbml0IGZ0ZXJy
ICovCkBAIC0xMTUsOSArMTIxLDkgQEAKIAogICBmaWx0ZXJfaW5wdXQgPSBmaWx0ZXJfb3V0cHV0
ID0gZmlsdGVyX3NyY3BvcnQgPSBmaWx0ZXJfZHN0cG9ydCA9IDA7CiAgIGZpbHRlcl9wcm90ID0g
ZmlsdGVyX3NyY2FzID0gZmlsdGVyX2RzdGFzID0gZmlsdGVyX3RvcyA9IDA7Ci0gIGZpbHRlcl90
Y3BfZmxhZ3MgPSAwOworICBmaWx0ZXJfc3JjdGFnID0gZmlsdGVyX2RzdHRhZyA9IGZpbHRlcl90
Y3BfZmxhZ3MgPSAwOwogCi0gIHdoaWxlICgoaSA9IGdldG9wdChhcmdjLCBhcmd2LCAiYTpBOmI6
QzpkOmY6cDpQOnI6Uzp0OlQ6RDpFOno6aTpJOm8iKSkgIT0gLTEpCisgIHdoaWxlICgoaSA9IGdl
dG9wdChhcmdjLCBhcmd2LCAiYTpBOmI6QzpkOmY6ZzpHOnA6UDpyOlM6dDpUOkQ6RTp6Omk6STpv
IikpICE9IC0xKQogICAgIHN3aXRjaCAoaSkgewogCiAgICAgY2FzZSAnYSc6IC8qIHNyYyBBUyBm
aWx0ZXIgbGlzdCAqLwpAQCAtMTM2LDYgKzE0Miw0MCBAQAogICAgICAgZmlsdGVyX2RzdGFzID0g
MTsKICAgICAgIGJyZWFrOwogCisgICAgY2FzZSAnZyc6IC8qIHNyYyBUQUcgZmlsdGVyIGxpc3Qg
Ki8KKyAgICAgIC8qIHRoZXJlIG11c3QgYmUgYSBiZXR0ZXIgd2F5IG9mIGRvaW5nIHRoaXMgYnV0
IGkgYW0gb3V0CisJIG9mIGlkZWEgYW5kIGluIHRvbyBtdWNoIG9mIGEgaHVycnkgKi8KKyAgICAg
IGogPSAodW5zaWduZWQpc3RydG9sKG9wdGFyZywgKGNoYXIqKikwTCwgMCk7CisgICAgICBsb3dl
ciA9IChqICYgMHhGRkZGMDAwMCkgPj4gMTY7CisgICAgICB1cHBlciA9IChqICYgMHgwMDAwRkZG
Rik7CisKKyAgICAgIHNwcmludGYodGVtcCwgIiVkIiwgdXBwZXIpOwkKKyAgICAgIGlmIChsb2Fk
X2xvb2t1cCh0ZW1wLCA2NTUzNiwgbF9zcmN0YWdfdGJsKSkKKyAgICAgICAgZnRlcnJfZXJyeCgx
LCAibG9hZF9sb29rdXAoKTogZmFpbGVkIik7CisgICAgICBzcHJpbnRmKHRlbXAsICIlZCIsIGxv
d2VyKTsJCisgICAgICBpZiAobG9hZF9sb29rdXAodGVtcCwgNjU1MzYsIHVfc3JjdGFnX3RibCkp
CisgICAgICAgIGZ0ZXJyX2VycngoMSwgImxvYWRfbG9va3VwKCk6IGZhaWxlZCIpOworCisgICAg
ICBmaWx0ZXJfc3JjdGFnID0gMTsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAnRyc6IC8qIGRz
dCBUQUcgZmlsdGVyIGxpc3QgKi8KKyAgICAgIC8qIHRoZXJlIG11c3QgYmUgYSBiZXR0ZXIgd2F5
IG9mIGRvaW5nIHRoaXMgYnV0IGkgYW0gb3V0CisgICAgICAgICBvZiBpZGVhIGFuZCBpbiB0b28g
bXVjaCBvZiBhIGh1cnJ5ICovCisgICAgICBqID0gKHVuc2lnbmVkKXN0cnRvbChvcHRhcmcsIChj
aGFyKiopMEwsIDApOworICAgICAgbG93ZXIgPSAoaiAmIDB4RkZGRjAwMDApID4+IDE2OworICAg
ICAgdXBwZXIgPSAoaiAmIDB4MDAwMEZGRkYpOworCisgICAgICBzcHJpbnRmKHRlbXAsICIlZCIs
IHVwcGVyKTsKKyAgICAgIGlmIChsb2FkX2xvb2t1cCh0ZW1wLCA2NTUzNiwgbF9kc3R0YWdfdGJs
KSkKKyAgICAgICAgZnRlcnJfZXJyeCgxLCAibG9hZF9sb29rdXAoKTogZmFpbGVkIik7CisgICAg
ICBzcHJpbnRmKHRlbXAsICIlZCIsIGxvd2VyKTsJCisgICAgICBpZiAobG9hZF9sb29rdXAodGVt
cCwgNjU1MzYsIHVfZHN0dGFnX3RibCkpCisgICAgICAgIGZ0ZXJyX2VycngoMSwgImxvYWRfbG9v
a3VwKCk6IGZhaWxlZCIpOworCisgICAgICBmaWx0ZXJfZHN0dGFnID0gMTsKKyAgICAgIGJyZWFr
OworCiAgICAgY2FzZSAnYic6IC8qIG91dHB1dCBieXRlIG9yZGVyICovCiAgICAgICBpZiAoIXN0
cmNhc2VjbXAob3B0YXJnLCAibGl0dGxlIikpCiAgICAgICAgIGZ0c2V0LmJ5dGVfb3JkZXIgPSBG
VF9IRUFERVJfTElUVExFX0VORElBTjsKQEAgLTI5Nyw2ICszMzcsOCBAQAogICBpZiAoZmlsdGVy
X2RzdGFzKSB4ZmxhZyB8PSBGVF9YRklFTERfRFNUX0FTOwogICBpZiAoZmlsdGVyX3RvcykgeGZs
YWcgfD0gRlRfWEZJRUxEX1RPUzsKICAgaWYgKGZpbHRlcl90Y3BfZmxhZ3MpIHhmbGFnIHw9IEZU
X1hGSUVMRF9UQ1BfRkxBR1M7CisgIGlmIChmaWx0ZXJfc3JjdGFnKSB4ZmxhZyB8PSBGVF9YRklF
TERfU1JDX1RBRzsKKyAgaWYgKGZpbHRlcl9kc3R0YWcpIHhmbGFnIHw9IEZUX1hGSUVMRF9EU1Rf
VEFHOwogICBpZiAoYWNsX3N0ZF9zcmNfbmFtZSkgeGZsYWcgfD0gRlRfWEZJRUxEX1NSQ0FERFI7
CiAgIGlmIChhY2xfc3RkX2RzdF9uYW1lKSB4ZmxhZyB8PSBGVF9YRklFTERfRFNUQUREUjsKICAg
aWYgKGFjbF9leHRfbmFtZSkgeGZsYWcgfD0gKEZUX1hGSUVMRF9TUkNBRERSIHwgRlRfWEZJRUxE
X0RTVEFERFIpOwpAQCAtMzc4LDcgKzQyMCw5IEBACiAgICAgY3VyLnByb3QgPSAoKHVfaW50OCop
KHJlYytmby5wcm90KSk7CiAgICAgY3VyLnRjcF9mbGFncyA9ICgodV9pbnQ4KikocmVjK2ZvLnRj
cF9mbGFncykpOwogICAgIGN1ci50b3MgPSAoKHVfaW50OCopKHJlYytmby50b3MpKTsKLQorICAg
IGN1ci5zcmNfdGFnID0gKCh1X2ludDMyKikocmVjK2ZvLnNyY190YWcpKTsKKyAgICBjdXIuZHN0
X3RhZyA9ICgodV9pbnQzMiopKHJlYytmby5kc3RfdGFnKSk7CisgICAKICAgICArKyB0b3RhbF9m
bG93czsKIAogICAgIC8qIGZpbHRlciBvbiBpbnB1dCBpbnRlcmZhY2UgKi8KQEAgLTQ1Myw2ICs0
OTcsNyBAQAogICAgICAgICB9CiAgICAgICB9CiAKKyAgICAvKiBmaWx0ZXIgb24gc3JjIEFTICov
CiAgICAgaWYgKGZpbHRlcl9zcmNhcykgewogICAgICAgaWYgKCFzcmNhc190YmxbKmN1ci5zcmNf
YXNdKSB7CiAgICAgICAgIGlmICghZmlyc3RfbWF0Y2gpCkBAIC00NjIsNyArNTA3LDcgQEAKICAg
ICAgIH0KICAgICB9CiAKLSAgICAvKiBmaWx0ZXIgb24gc3JjIEFTICovCisgICAgLyogZmlsdGVy
IG9uIGRzdCBBUyAqLwogICAgIGlmIChmaWx0ZXJfZHN0YXMpIHsKICAgICAgIGlmICghZHN0YXNf
dGJsWypjdXIuZHN0X2FzXSkgewogICAgICAgICBpZiAoIWZpcnN0X21hdGNoKQpAQCAtNDcyLDYg
KzUxNywzMyBAQAogICAgICAgfQogICAgIH0KIAorICAgIC8qIGZpbHRlciBvbiBzcmMgdGFnICov
CisgICAgaWYgKGZpbHRlcl9zcmN0YWcpIHsKKyAgICAgIHVwcGVyID0gKCpjdXIuc3JjX3RhZyAm
IDB4RkZGRjAwMDApID4+IDE2OworICAgICAgbG93ZXIgPSAoKmN1ci5zcmNfdGFnICYgMHgwMDAw
RkZGRik7CisKKyAgICAgIGlmICgoIXVfc3JjdGFnX3RibFt1cHBlcl0pIHx8ICghbF9zcmN0YWdf
dGJsW2xvd2VyXSkpIHsKKyAgICAgICAgaWYgKCFmaXJzdF9tYXRjaCkKKyAgICAgICAgICBjb250
aW51ZTsKKyAgICAgIH0gZWxzZSBpZiAoZmlyc3RfbWF0Y2gpIHsKKyAgICAgICAgZ290byBmb3Vu
ZDsKKyAgICAgIH0KKworICAgIH0KKworICAgIC8qIGZpbHRlciBvbiBkc3QgdGFnICovCisgICAg
aWYgKGZpbHRlcl9kc3R0YWcpIHsKKyAgICAgIHVwcGVyID0gKCpjdXIuZHN0X3RhZyAmIDB4RkZG
RjAwMDApID4+IDE2OworICAgICAgbG93ZXIgPSAoKmN1ci5kc3RfdGFnICYgMHgwMDAwRkZGRik7
CisKKyAgICAgIGlmICgoIXVfZHN0dGFnX3RibFt1cHBlcl0pIHx8ICghbF9kc3R0YWdfdGJsW2xv
d2VyXSkpIHsKKyAgICAgICAgaWYgKCFmaXJzdF9tYXRjaCkKKyAgICAgICAgICBjb250aW51ZTsK
KyAgICAgIH0gZWxzZSBpZiAoZmlyc3RfbWF0Y2gpIHsKKyAgICAgICAgZ290byBmb3VuZDsKKyAg
ICAgIH0KKyAgICB9CisKICAgICAvKiBldmFsIGZsb3cgc3JjIGFkZHIgYW5kIHNvdXJjZSBzdGFu
ZGFyZCBhY2wgKi8KICAgICBpZiAoYWNsX3N0ZF9zcmNfaW5kZXggIT0gLTEpIHsKICAgICAgIHJl
dCA9IGFjbF9ldmFsX3N0ZChhY2xfbGlzdCwgYWNsX3N0ZF9zcmNfaW5kZXgyLCAqY3VyLnNyY2Fk
ZHIpOwpAQCAtNTY2LDYgKzYzOCw3IEBACiAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgIFstaSBp
bnB1dF9maWx0ZXJdIFstSSBvdXRwdXRfZmlsdGVyXSAgWy1wIHNyY3BvcnRfZmlsdGVyXVxuIik7
CiAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgIFstUCBkc3Rwb3J0X2ZpbHRlcl0gWy1yIGlwcHJv
dF9maWx0ZXJdIFstUyBzcmNhZGRyX2ZpbHRlcl9uYW1lXVxuIik7CiAgIGZwcmludGYoc3RkZXJy
LCAiICAgICAgIFstdCB0b3NfZmlsdGVyXSBbLVQgdGNwX2ZsYWdzX2ZpbHRlcl0gWy16IHpfbGV2
ZWxdXG4iKTsKKyAgZnByaW50ZihzdGRlcnIsICIgICAgICAgWy1nIHNyY3RhZ19maWx0ZXJdIFst
RyBkc3R0YWdfZmlsdGVyXVxuIik7CiAgIGZwcmludGYoc3RkZXJyLCAiXG4lcyB2ZXJzaW9uICVz
OiBidWlsdCBieSAlc1xuIiwgUEFDS0FHRSwgVkVSU0lPTiwgRlRfUFJPR19CVUlMRCk7CiAKIH0g
LyogdXNhZ2UgKi8K

---MOQ102187461897698d8b0363539328e612c900e612c5--