[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 Alexandre Cassen = <<a href=3D"mailto:[email protected]" = class=3D"">[email protected]</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>* 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> 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> 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> 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> 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> = 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> 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> 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> = 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> = 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> 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> 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> 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> 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> = 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> '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> 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> 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> 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> 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> = 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> 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> 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> 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> . 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> . 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> 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> 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> 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> 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> 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> 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> ---- 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> 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> preempt_delay = <N></font></div><div class=3D""><font face=3D"Courier New" = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span> 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> 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> = 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> 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> 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> = 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> (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> 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> 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> = 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> 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> 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> vrrp->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> 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> 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> 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> 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> 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> 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> 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> 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> 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 < = 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> = When a service had quorum < 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> = 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> = 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> Lost quorum = 1-2=3D18446744073709551615 > 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> = The up -> 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> 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> 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> 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> = 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> = 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> 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> = 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> = 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==--