History log of /freebsd-10-stable/sys/netinet/ip_carp.c
Revision Date Author Comments
# 312444 20-Jan-2017 jpaetzel

Revert MFC of 310847 and 310864

Requested by glebius who had questions about the original
head commit that I didn't see.


# 312440 19-Jan-2017 jpaetzel

MFC 310847 310864

Harden CARP against network loops.

If there is a loop in the network a CARP that is in MASTER state will see it's
own broadcasts, which will then cause it to assume BACKUP state. When it
assumes BACKUP it will stop sending advertisements. In that state it will no
longer see advertisements and will assume MASTER...

We can't catch all the cases where we are seeing our own CARP broadcast, but
we can catch the obvious case.

Unbreak ip_carp with WITHOUT_INET6 enabled by conditionalizing all IPv6
structs under the INET6 #ifdef. Similarly (even though it doesn't seem
to affect the build), conditionalize all IPv4 structs under the INET
#ifdef

This also unbreaks the LINT-NOINET6 tinderbox target on amd64; I have not
verified other MACHINE/TARGET pairs (e.g. armv6/arm).

Submitted by: torek
Obtained from: FreeNAS
Pointyhat fix: ngie


# 278075 02-Feb-2015 loos

MFC r276751:

Remove the check that prevent carp(4) advskew to be set to '0'.

CARP devices are created with advskew set to '0' and once you set it to
any other value in the valid range (0..254) you can't set it back to zero.

The code in question is also used to prevent that zeroed values overwrite
the CARP defaults when a new CARP device is created. Since advskew already
defaults to '0' for newly created devices and the new value is guaranteed
to be within the valid range, it is safe to overwrite it here.

PR: 194672
Reported by: cmb@pfsense.org


# 264111 04-Apr-2014 glebius

Merge r262341:
- Improve logging of send errors, reporting error code and interface.
- Reduce code duplication between INET and INET6.


# 278075 02-Feb-2015 loos

MFC r276751:

Remove the check that prevent carp(4) advskew to be set to '0'.

CARP devices are created with advskew set to '0' and once you set it to
any other value in the valid range (0..254) you can't set it back to zero.

The code in question is also used to prevent that zeroed values overwrite
the CARP defaults when a new CARP device is created. Since advskew already
defaults to '0' for newly created devices and the new value is guaranteed
to be within the valid range, it is safe to overwrite it here.

PR: 194672
Reported by: cmb@pfsense.org


# 264111 04-Apr-2014 glebius

Merge r262341:
- Improve logging of send errors, reporting error code and interface.
- Reduce code duplication between INET and INET6.