Forum Discussion
dennypayne
Employee
Jun 22, 2006TCP::collect question
In the whitepaper regarding Siebel deployments referenced at http://www.f5.com/solutions/deployment/siebel77_bigip9_dg.html there is the following rule:
when CLIENT_ACCEPTED {
TCP::collect 1 }
when CLIENT_DATA {
if { [findstr [TCP::payload] "/siebel" 0 " "] == "/siebel/sccobjmgr_enu" } {
log local0. "Using pool SCCObjMgr_enuConnPool"
pool SCCObjMgr_enuConnPool
}
elseif { [findstr [TCP::payload] "/siebel" 0 " "] == "/siebel/eserviceobjmgr_enu" } {
log local0. "Using pool eServiceObjMgr_enuConnPool"
pool eServiceObjMgr_enuConnPool
}
elseif { [findstr [TCP::payload] "/siebel" 0 " "] == "/siebel/sccobjmgr_enu/rr" } {
log local0. "Using pool SCCObjMgr_enuRRPool"
pool SCCObjMgr_enuRRPool
}
elseif { [findstr [TCP::payload] "/siebel" 0 " "] == "/siebel/eserviceobjmgr_enu/rr" } {
log local0. "Using pool eServiceObjMgr_enuRRPool"
pool eServiceObjMgr_enuRRPool
}
elseif { [findstr [TCP::payload] "/siebel" 0 " "] contains "/!3." } {
log local0. "Using pool siebelapp2ServerPool"
pool siebelapp2ServerPool
}
elseif { [findstr [TCP::payload] "/siebel" 0 " "] contains "/!1." } {
log local0. "Using pool siebeldbServerPool"
pool siebeldbServerPool
}
elseif { [findstr [TCP::payload] "/siebel" 0 " "] contains "/!2." } {
log local0. "Using pool siebelapp1ServerPool"
pool siebelapp1ServerPool
}
else {
log local0. "Rejected request for [findstr [TCP::payload] "/siebel" 0 " "]"
discard }
} ' } I'm not sure what the units are for on TCP::collect argument but I would assume it to be bytes. With that assumption, how can this rule work if you only collect 1 byte of data when the strings to be compared further down in the rule are larger than this?
Denny
3 Replies
- Andy_Herrman_22
Nimbostratus
I think the length value there is for the number of packets, not number of bytes (afaik getting, say, 1 byte vs 1 packet doesn't really take any extra resources). - dennypayne
Employee
Ah this would make more sense. I will see about updating the wiki to document this...
Denny - unRuleY_95363Historic F5 AccountNo, the length is in bytes. But, here's the thing - think of it more as a "minimum length" to wait for. So, yes, indicating that you would minimally like 1 byte is sort of like saying you want to wait until the first packet with at least 1 byte. It doesn't mean that you won't get more - in all likelihood you will get more, that is unless you are using telnet in character mode...
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects