Forum Discussion
Tiaan_92076
Nimbostratus
Aug 18, 2009How to determine last segment in reaseembled TCP packet
I need to detach the load balancing decision after a transaction is completed on a member in the pool. The transaction occasionally spans multiple TCP segments causing the SERVER_DATA event to be rais...
Tiaan_92076
Nimbostratus
Feb 05, 2010I've got the following problem with my iRule when a client uses multiple threads using the same source port for all the threads.
Doing a TCPDump I can see the transactions coming in on the outside interface, on the inside interface it goes the the nodes and I can see the response returned from the nodes. But I don't see the response leaving the outside interface. The result is that the client don't get the response and eventually times out.
iRule:
when RULE_INIT {
set ::eot "Marker"
set ::eot_found 0
}
when SERVER_CONNECTED {
TCP::collect
}
when SERVER_DATA {
set payload [TCP::payload]
log -noname local0. "iRule: Request from [IP::client_addr]:[TCP::client_port] load balanced to [LB::server addr]"
if { $payload ends_with $::eot } {
set ::eot_found 1
}
TCP::release
TCP::collect
TCP::notify response
}
when USER_RESPONSE {
if { $::eot_found eq 1 } {
set ::eot_found 0
LB::detach
}
}
After adding the "log" to "SERVER_CONNECTED" event I get the following error in the log file. Without this line no errors were logged.
TCL error: - Error: No clientside connection established (line 6) invoked from within "IP::client_addr"
Why would doing a LB detach effect the client side connection ?
Thanks
Tiaan
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