[ANNOUNCE] Keepalived 1.2.14

Alexandre Cassen <[email protected]> Tue, 16 Dec 2014 10:47:36 +0100
Newsgroups gmane.linux.keepalived.announce
Message-ID <F75BEF8A-12C5-4944-AAD5-987FDFBCB0BC__43933.0877540216$1418723989$gmane$org@gmail.com>
--===============7906375464334018324==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_FE55F140-A894-48CC-AA29-C7DB281C5016"


--Apple-Mail=_FE55F140-A894-48CC-AA29-C7DB281C5016
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hello,

I just committed a new release. Including bug fixes and extensions. =
Thanks to all contributors. For credit, please refer to github commit =
log. IPv6 part is now ready to merge VRRPv3 code.

ChangeLog for the release look like :

2014-12-16  Alexandre Cassen  <[email protected] =
<mailto:[email protected]>>
	* keepalived-1.2.14 released.
	* The "Date:" mail header is now localtime.
	* bugfix: fwmark field was formatted as signed int
	* dump_conn_opts: fwmark was not displayed.
	* log_message: emit -Wformat=3D compiler warnings.
	  There could be (and actually are) situations when the format
	  string and the arguments list passed to the log_message() are
	  inconsistent or mistyped. The compiler did not show any =
warnings
	  because the vsnprintf was called indirectly.
	* Further unification of IP endpoints logging.
	  This change tries to keep usage of the standard "[%s]:%d" =
format
	  string to a minimum. Instead, use inet_sockaddrtopair wherever
	  possible.
	* Add SNMP subsystem option to man page.
	  The keepalived(8) man page did not mention the -x option to
	  enable the SNMP subsystem. This patch adds the -x (and --smmp)
	  options to the keepalived(8) man page, as described in the
	  keepalived help message.
	* vrrp: fix gratuitous ARP refresh timer handling.
	  Previous code was using an 'int' to store parsed timer value.
	  This value was then expanded to TIMER_HZ which can lead to a
	  wrapping issue if requested timer is longer than local machine
	  'int' representation. This patch reworked the code to use
	  timeval_t instead and perfrom regular timeval operations.
	* vrrp: Fix a memory leak while dropping incoming IPSEC-AH
	  authenticated advert. Digest was allocated in previous code
	  without freeing it on HMAC-MD5 missmatch.
	* vrrp: Extend IPSEC-AH auth to support unicast.
	  If you plane to use IPSEC-AH auth in unicast mode (which THE =
best
	  idea), then IP header TTL MUST be zeroed since it is mutable =
field
	  on transit.
	* vrrp: Update VRRP VMAC doc.
	  Add vmac_xmit_base in configuration example and force =
rp_filter=3D0
	  on macvlan interface.
	* vrrp: make gratuitous ARP repeat count configurable.
	  . garp_master_repeat : Gratuitous ARP count sent on the wire
				 after MASTER state transition.
	  . garp_master_refresh_repeat : Gratuitous ARP count sent on =
the
				         wire when garp_refresh_timer =
fir
	* vrrp: fix preempt and state BACKUP when prio 255.
	  This makes it so that keepalived will respect various settings =
that
	  should prevent it from assuming the MASTER role for a =
vrrp_instance
	  unconditionally and immediately, even if the priority of the
	  vrrp_instance in question is set to 255 (VRRP_PRIO_OWNER). =
These
	  settings include:
	  ---- conf ----
	  state BACKUP
	  preempt_delay <N>
	  nopreempt
	* vrrp: in backup state notify when vrrp is not up and move to =
FAULT
	  state.
	* ipvs: failed RS was flapping on config reload.
	  The RS disabled by health-checker was turned on w/o =
health-checking
	  by SIGHUP handler in the init_service_rs() subroutine.
	  This did not happen with alpha mode set.
	* libipvs: allow IPv4 RS in IPv6 VS and vice versa.
	  This change syncronizes local copy of libipvs with the =
upstream
	  (kernel/ipvsadm/ipvsadm.git) to the date. IPVS in Linux 3.18 =
will
	  include the feature of mixing of tunneled RS families in =
single VS.
	  The compatibility with older kernel versions is kept.
	* libipvs: minor bugfix with retreiving dest af.
	  This change needs to be sent to the ipvsadm upstream, too.
	  This clarifies the previous commit, so there is no need to =
mention
	  it in the changelog.
	* vrrp: check if interface is known when using use_vmac.
	  vrrp->ifp is NULL when use_vmac keyword is defined before the
	  interface keyword. This would result in a segfault
	* vrrp: simplify macvlan creation.
	  Create the macvlan interface in one netlink command rather =
than
	  three (creation of the macvlan in netlink_link_add_vmac =
function,
	  set of the mac address in the netlink_link_setlladdr function, =
set
	  macvlan mode in the netlink_link_setmode function).
	  This simplification:
	  1. avoids potential issues if the firt netlink command passes =
butcw
	      not the next ones
	  2. reduces number of netlink messages (light optimization)
	* ipvs: bugfix quorum state was flapping when Q < H.
	  When a service had quorum < hysteresis, the lower threshold of =
RS
	  weights was calculated incorrecly. Unsigned arythmetics was =
used, so
	  errors like this appeared in log: =
Keepalived_healthcheckers[2535]:
	  Lost quorum 1-2=3D18446744073709551615 > 10 for VS
	  The up -> down quorum state transition was happening every =
time when
	  alive RS set was changed. This bug was in place since
	  keepalived-1.2.9
	* vrrp: add support to IPv6 mcast src address specification.
	  For some reason (well... which one ?), previous code didnt =
support
	  specification of multicast source address in IPv6 mode. If you =
are
	  using 'native_ipv6' and want to specify IPv6 mcast source ip =
address
	  then you can use 'mcast_src_ip' keyword with IPv6 address.
	* vrrp: Add support to IPv6 src_address discrimination in master
	  rx state.
	  Previous code didnt support IPv6 address discrimination while =
in
	  MASTER state receiving same prio advert. This patch extend =
previous
	  code to support IP address comparison agnostic.
	* vrrp: IPv6 mcast src_addr handling and VMAC fix.
	  Properly bind socket for v6 use-case when mcasr_src_ip is in =
use or
	  when VMAC is used. This patch fix VRRP VMAC in native_ipv6 =
mode,
	  previous code just use the vmac interface link-local IP =
Address as
	  src_ip leading to a corner case (to keep polite).
	* vrrp: in IPv6 scope_id is mandatory to bind link-local =
address.
	  In IPv6 use-case, source IP address is set binding sokect to
	  socaddr_in6. Linux Kernel requires interface to bind =
link-local
	  address.
	* vrrp: fix nopreempt mode in master_rx.
	  While receiving lower prio advert, preempt election according =
to
	  nopreempt keyword. By default preempt is on as requested by =
RFC.
	* exit on malloc failure.
	* genhash: code cleanup.


Enjoy,
Alexandre=

--Apple-Mail=_FE55F140-A894-48CC-AA29-C7DB281C5016
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"><meta http-equiv=3D"Content-Type" content=3D"text/html=
 charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><font face=3D"Courier New" class=3D"">Hello,</font><div =
class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">I just committed a new release. Including bug fixes and =
extensions. Thanks to all contributors. For credit, please refer to =
github commit log. IPv6 part is now ready to merge VRRPv3 =
code.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><br class=3D""></font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">ChangeLog for the release look like =
:</font></div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><div class=3D""><font =
face=3D"Courier New" class=3D"">2014-12-16 &nbsp;Alexandre Cassen =
&nbsp;&lt;<a href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt;</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* keepalived-1.2.14 =
released.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* The "Date:" mail header is now localtime.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>* bugfix: =
fwmark field was formatted as signed int</font></div><div class=3D""><font=
 face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* dump_conn_opts: fwmark was not =
displayed.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* log_message: emit -Wformat=3D compiler =
warnings.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;There could be (and actually are) situations when the =
format</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;string and the arguments list passed to the log_message() =
are</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;inconsistent or mistyped. The compiler did not show any =
warnings</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;because the vsnprintf was called =
indirectly.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* Further unification of IP endpoints logging.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;This change tries to keep usage of the standard "[%s]:%d" =
format</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;string to a minimum. Instead, use inet_sockaddrtopair =
wherever</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;possible.</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* Add SNMP subsystem option to man page.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;The keepalived(8) man page did not mention the -x option =
to</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;enable the SNMP subsystem. This patch adds the -x (and =
--smmp)</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;options to the keepalived(8) man page, as described in =
the</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;keepalived help message.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* vrrp: fix gratuitous ARP =
refresh timer handling.</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;Previous code was using an 'int' to store parsed timer =
value.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;This value was then expanded to TIMER_HZ which can lead to =
a</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;wrapping issue if requested timer is longer than local =
machine</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;'int' representation. This patch reworked the code to =
use</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;timeval_t instead and perfrom regular timeval =
operations.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: Fix a memory leak while dropping incoming =
IPSEC-AH</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;authenticated advert. Digest was allocated in previous =
code</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;without freeing it on HMAC-MD5 missmatch.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>* vrrp: =
Extend IPSEC-AH auth to support unicast.</font></div><div class=3D""><font=
 face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;If you plane to use =
IPSEC-AH auth in unicast mode (which THE best</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;idea), then IP header TTL MUST be zeroed since it is mutable =
field</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;on transit.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* vrrp: Update VRRP VMAC =
doc.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;Add vmac_xmit_base in configuration example and force =
rp_filter=3D0</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;on macvlan interface.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* vrrp: make gratuitous ARP =
repeat count configurable.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;. garp_master_repeat : =
Gratuitous ARP count sent on the wire</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">				</span> after =
MASTER state transition.</font></div><div class=3D""><font face=3D"Courier=
 New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
	</span> &nbsp;. garp_master_refresh_repeat : Gratuitous ARP =
count sent on the</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">		=
		</span> &nbsp; &nbsp; &nbsp; &nbsp; wire when =
garp_refresh_timer fir</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: fix preempt and state BACKUP when prio =
255.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;This makes it so that keepalived will respect various =
settings that</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;should prevent it from assuming the MASTER role for a =
vrrp_instance</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;unconditionally and immediately, even if the priority of =
the</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;vrrp_instance in question is set to 255 (VRRP_PRIO_OWNER). =
These</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;settings include:</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;---- conf =
----</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;state BACKUP</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;preempt_delay =
&lt;N&gt;</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;nopreempt</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: in backup state notify when vrrp is not up and move to =
FAULT</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;state.</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* ipvs: failed RS was flapping on config reload.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;The RS disabled by health-checker was turned on w/o =
health-checking</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;by SIGHUP handler in the init_service_rs() =
subroutine.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;This did not happen with alpha mode set.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>* =
libipvs: allow IPv4 RS in IPv6 VS and vice versa.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;This change syncronizes local copy of libipvs with the =
upstream</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;(kernel/ipvsadm/ipvsadm.git) to the date. IPVS in Linux =
3.18 will</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;include the feature of mixing of tunneled RS families in =
single VS.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;The compatibility with older kernel versions is =
kept.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* libipvs: minor bugfix with retreiving dest af.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;This change needs to be sent to the ipvsadm upstream, =
too.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;This clarifies the previous commit, so there is no need to =
mention</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;it in the changelog.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* vrrp: check if interface is =
known when using use_vmac.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;vrrp-&gt;ifp is NULL when =
use_vmac keyword is defined before the</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;interface keyword. This =
would result in a segfault</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* vrrp: simplify macvlan =
creation.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;Create the macvlan interface in one netlink command rather =
than</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;three (creation of the macvlan in netlink_link_add_vmac =
function,</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;set of the mac address in the netlink_link_setlladdr =
function, set</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;macvlan mode in the netlink_link_setmode =
function).</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;This simplification:</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;1. avoids potential issues =
if the firt netlink command passes butcw</font></div><div class=3D""><font=
 face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp; &nbsp; &nbsp;not the next =
ones</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;2. reduces number of netlink messages (light =
optimization)</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* ipvs: bugfix quorum state was flapping when Q &lt; =
H.</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;When a service had quorum &lt; hysteresis, the lower threshold of =
RS</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;weights was calculated incorrecly. Unsigned arythmetics was used, =
so</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;errors like this appeared in log: =
Keepalived_healthcheckers[2535]:</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;Lost quorum =
1-2=3D18446744073709551615 &gt; 10 for VS</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;The up -&gt; down quorum state transition was happening every time =
when</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;alive RS set was changed. This bug was in place =
since</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;keepalived-1.2.9</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* vrrp: add support to IPv6 mcast =
src address specification.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span> &nbsp;For some reason (well... =
which one ?), previous code didnt support</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;specification of multicast source address in IPv6 mode. If you =
are</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;using 'native_ipv6' and want to specify IPv6 mcast source =
ip address</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;then you can use 'mcast_src_ip' keyword with IPv6 =
address.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: Add support to IPv6 src_address discrimination in =
master</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;rx state.</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;Previous code didnt support IPv6 address discrimination =
while in</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;MASTER state receiving same prio advert. This patch extend =
previous</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;code to support IP address comparison =
agnostic.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: IPv6 mcast src_addr handling and VMAC =
fix.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;Properly bind socket for v6 use-case when mcasr_src_ip is =
in use or</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;when VMAC is used. This patch fix VRRP VMAC in native_ipv6 =
mode,</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;previous code just use the vmac interface link-local IP =
Address as</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;src_ip leading to a corner case (to keep =
polite).</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: in IPv6 scope_id is mandatory to bind link-local =
address.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;In IPv6 use-case, source IP address is set binding sokect =
to</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;socaddr_in6. Linux Kernel requires interface to bind =
link-local</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;address.</font></div><div class=3D""><font face=3D"Courier =
New" class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* vrrp: fix nopreempt mode in master_rx.</font></div><div =
class=3D""><font face=3D"Courier New" class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;While receiving lower prio advert, preempt election according =
to</font></div><div class=3D""><font face=3D"Courier New" class=3D""><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre">	</span> =
&nbsp;nopreempt keyword. By default preempt is on as requested by =
RFC.</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>* exit on malloc failure.</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>* genhash: code =
cleanup.</font></div></div><div class=3D""><font face=3D"Courier New" =
class=3D""><br class=3D""></font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">Enjoy,</font></div><div =
class=3D""><font face=3D"Courier New" =
class=3D"">Alexandre</font></div></body></html>=

--Apple-Mail=_FE55F140-A894-48CC-AA29-C7DB281C5016--


--===============7906375464334018324==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
--===============7906375464334018324==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Keepalived-announce mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-announce

--===============7906375464334018324==--