Are TCP Repair options available in FreeBSD?

The TCP_REPAIR socket option was added in Linux to help with C/R(Checkpoint and restore) for TCP sockets. This can be used to migrate socket from a system to another system. Do we have this feature supported on FreeBSD ?
 
We have an application(cipssrv) that acts as primary process and it creates multiple sockets(listen and established) on the debian system and stores latest state of the socket.
Another instance of same application(cipssrv on backup) running on another debian system acts as backup. Both the debian systems have their own set of interfaces.
When the interface on primary system goes down, all the IP addresses on that interface are moved to identified backup interface on backup debian system. All the sockets on primary system using the
interface (which went down), are recreated on backup system, moved in to TCP REPAIR Mode and updated to the latest state of that socket known to primary application and then moved out of TCP REPAIR mode.
Sockets created on backup process will continue communicating with pear end connection.
Setting proper IP table rules on the backup system during migration will avoid peer end connection getting into any wrong state during this phase of migration.
We want to port this application on FreeBSD. pfsync looks like tool that can be used only for PF Firewall, which migrates connection on primary FW to backup FW.
Can you suggest some feature available on FreeBSD (similar to TCP REPAIR mode in debian) to migrate socket from primary process to backup process?
 
CARP makes IP address available on backup when primary goes down. We were looking for even the TCP connection migration when primary goes down. Any idea why was VPS not merged to main branch? Is there any plan to merge that in future?
 
Because CARP works at the ARP level, any connections will be moved to the backup transparently. You might have a few packet retransmits, but that is one of the design features of TCP. I don't see a need for whatever "repair" fixes.
 
Because CARP works at the ARP level, any connections will be moved to the backup transparently. You might have a few packet retransmits, but that is one of the design features of TCP. I don't see a need for whatever "repair" fixes.
It's the ability to save and later restore a TCP socket, in any state. Unlike CARP, it doesn't require a backup to be running.
 
Any idea why was VPS not merged to main branch? Is there any plan to merge that in future? Looks like we do not have feature equivalent to TCP Repair on FreeBSD and it good to have that on FreeBSD.
 
respectfully, I think its a bad idea...the TCP stack was not design to migrate sessions, and doing so is a hack. Errored sessions should be reported to the higher levels so that the application can reset its app-protcol state under a new session.
 
Back
Top