While deploying BFD on some ISR 4k’s I noticed this “Session Host: Software”. It turns out that BFD Echo mode is not hardware offloaded on these ISR 4K’s, only the Control packets are. Although the echo packet is routed via CEF on the neighbor, when it comes back to us we process it in software. This is in contrast to the Control function which is a ping back and forth on udp port 3784, this is ASIC processed.
This is a big contrast to a lot of the learning material regarding the echo function and why it’s so good. So if you’re platform supports echo function in hardware, do that. Otherwise, disable it and use the control packets for the event triggering as long as they are hardware offloaded.
Per the Cisco Document:
Configuring BFD Offload
Only BFD version 1 is supported.
Only Asynchronous mode or no echo mode of BFD is supported.
BFD hardware offload is supported for IPv4 sessions with non-echo mode only.
The original config:
int g0/0/1 bfd interval 300 min_rx 300 multiplier 3 bfd echo
Which caused this:
To resolve this it required the following config:
int g0/0/1 bfd interval 300 min_rx 300 multiplier 3 no bfd echo
note: I’m actually using a BFD template but I didnt want to confuse the configuration so I kept it simple in my examples to you.
And then I had to flap the interfaces on both sides