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:
bfd template single-hop BFD interval min-tx 300 min-rx 300 multiplier 3 echo int g0/0/1 bfd-template BFD
Which caused this:
To resolve this it required the following config:
bfd template single-hop BFD interval min-tx 300 min-rx 300 multiplier 3 no echo int g0/0/1 bfd-template BFD
note: we basically just turned off the echo function
And then I had to flap the interfaces on both sides