Opened 6 months ago

Closed 8 weeks ago

#5460 closed enhancement (complete)

HA: Send v6 lease updates to the peer

Reported by: tomek Owned by: marcin
Priority: medium Milestone: Kea1.4
Component: high-availability Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

The HADesign defines a mechanism that will sent lease updates to a peer. This is essentially the client part of the lease-update mechanism.

This ticket also covers creation of a new hook point that can be exploited by other libraries.

Note: it should be possible for 3rd party hook library to disable this mechanism. One possible way to do this is to check if the next step returned is skip.

This ticket covers v6 lease updates. See #5459 for its v4 counterpart.

Subtickets

Change History (7)

comment:1 Changed 2 months ago by marcin

  • Owner set to marcin
  • Status changed from new to accepted

comment:2 Changed 8 weeks ago by marcin

  • Owner changed from marcin to UnAssigned
  • Status changed from accepted to reviewing

Asynchronous IPv6 lease updates have been implemented. They are currently not sent by the DHCPv6 server because we're waiting for #5458.

Proposed ChangeLog:

XX.	[func]		marcin
	Implemented IPv6 lease updates in the HA hook library.
	(Trac #5460, git cafe)

comment:3 Changed 8 weeks ago by tmark

  • Owner changed from UnAssigned to tmark

comment:4 Changed 8 weeks ago by tmark

  • Owner changed from tmark to marcin

Changes are pretty straight forward. Testing looks thorough. HA unit tests pass under Ubuntu 16.04 and also run cleanly under valgrind. Two things:

src/hooks/dhcp/high_availability/ha_messages.mes

+% HA_LEASES6_COMMITTED_FAILED leases6_committed callout failed: %1
+This error message is issued when the callout for the leases6_committed hook
+point failed. The argument contains a reason for the error.

Somehow this description doesn't really explain anything. Maybe you
could add a brief sentence of the types of failures that might occur?


src/hooks/dhcp/high_availability/communication_state.h

Could you explain why it is important for CommunicationState?
constructors are declared as "explicit"? You may wish to
add discussion of this to the base class commentary.

comment:5 Changed 8 weeks ago by marcin

  • Owner changed from marcin to tmark

I removed the "explicit" keyword from the CommunicationState classes. I also updated the log messages' descriptions.

comment:6 Changed 8 weeks ago by tmark

  • Owner changed from tmark to marcin

Changes are fine, please merge.

comment:7 Changed 8 weeks ago by marcin

  • Resolution set to complete
  • Status changed from reviewing to closed

Merged with commit 546f782014c02088f12792f0d87bc305f57eaa79.

Note: See TracTickets for help on using tickets.