Brocade ADX: HTTP Packets Dropped when using Pipelining & CSW

Symptoms

When enabling CSW and running HTTP pipelining you may experience a breakdown in your HTTP session.

Issue

When enabling CSW on a Virtual Server pipelining is enabled on the designated port by default.
The issue occurs when a second GET request comes in before the first GET/POST answer is fully received from the server (this could include a single ACK still pending), then the ADX drops the second request silently. The client will keep retransmitting the second request and then finally give up after some time.

This issue is typically seen when using extremely long URI references.

Solution

To resolve this issue there are 2 options.

  1. Upgrade to 12.4.00d,
  2. Use the “reset-pipeline-request” command.

The “reset-pipeline-request” command (i.e “port http keep-alive reset-pipeline-request”) works around this issue by allowing the answer to the first request to complete (even if a second request comes in) and then resetting the connection. This in turn forces the client start a new connection for the second request.

Note : Should you enable ‘port <port> keep-alive reset-pipeline-request’ and then remove it using the command ‘no port <port> no-keep-alive’ (on the Virtual Server). You will need to ensure you re-enable keep-alive on the VIP using the command ‘port <port> keep-alive’.

Rick Donato

Want to become a networking expert?

Here is our hand-picked selection of the best courses you can find online:
Cisco CCNA 200-301 Certification Gold Bootcamp
Complete Cyber Security Course – Network Security
Internet Security Deep Dive course
Python Pro Bootcamp
and our recommended certification practice exams:
AlphaPrep Practice Tests - Free Trial