Forum Discussion

Tomasz_Radzisze's avatar
Tomasz_Radzisze
Icon for Nimbostratus rankNimbostratus
Aug 06, 2007

Route chunks of data individually

I need to process TCP stream, but I need to separately select destination server for chunks of data, not for the whole connection. The "chunks" are messages of a layer 7 protocol that I am using. The problem is that they do not map directly to TCP segments. One TCP segment can contain multiple chunks, and they need to be sent to potentially different destinations. So, what I need is something like


when CLIENT_DATA {
  node xxx
  send bytes from 0 to 99
  LB::detach
  TCP::release
  node yyy
  send rest of bytes
  LB::detach
  TCP::release
  TCP::collect

In other words, I need to do node, TCP::release and LB::detach many times in one CLIENT_DATA event. Is it possible to implement it with iRules?

The selection of which bytes are to be sent can be done using TCP::payload replace, but it doesn't help if I can't change node within one event. Or can I?

Note that this functionality is very similar to what BIG-IP automatically does when using HTTP profile. It triggers the event HTTP_REQUEST for each separate HTTP request (layer 7), independently of how they are segmented in TCP. But I need to implement it for another protocol.
No RepliesBe the first to reply