/** https://tools.ietf.org/html/rfc3315#section-17.2.2 */ @Override protected Dhcp6Message advertise( final Dhcp6RequestContext requestContext, final Dhcp6Message incomingMsg) throws Dhcp6Exception { Dhcp6Message reply = createReply(incomingMsg); reply.setMessageType(Dhcp6MessageType.DHCP_ADVERTISE); final Dhcp6Message lease = leaseManager.lease(requestContext, incomingMsg, reply); leaseManager.requestInformation(requestContext, incomingMsg, reply); return lease; }
/** https://tools.ietf.org/html/rfc3315#section-18.2.3 */ @Override protected Dhcp6Message renew( final Dhcp6RequestContext requestContext, final Dhcp6Message incomingMsg) throws Dhcp6Exception { Dhcp6Message reply = createReply(incomingMsg); final Dhcp6Message renew = leaseManager.renew(requestContext, incomingMsg, reply); // The server includes other options containing configuration // information to be returned to the client as described in section 18.2. leaseManager.requestInformation(requestContext, incomingMsg, renew); return renew; }
/** https://tools.ietf.org/html/rfc3315#section-18.2.7 */ @Override protected Dhcp6Message decline( final Dhcp6RequestContext requestContext, final Dhcp6Message incomingMsg) throws Dhcp6Exception { final Dhcp6Message reply = createReply(incomingMsg); return leaseManager.decline(requestContext, incomingMsg, reply); }
/** Handle message with no specific handler implemented */ @Override @Nullable protected Dhcp6Message handle( final Dhcp6RequestContext requestContext, final Dhcp6Message incomingMsg) throws Dhcp6Exception { // Delegate full handling of unknown message to lease manager return leaseManager.handle(requestContext, incomingMsg); }
/** https://tools.ietf.org/html/rfc3315#section-18.2.5 */ @Override protected Dhcp6Message requestInformation( final Dhcp6RequestContext requestContext, final Dhcp6Message incomingMsg) throws Dhcp6Exception { Dhcp6Message reply = createGenericReply(incomingMsg, Dhcp6MessageType.DHCP_REPLY); if (incomingMsg.getOptions().contains(ClientIdOption.class)) { reply.getOptions().add(incomingMsg.getOptions().get(ClientIdOption.class)); } return leaseManager.requestInformation(requestContext, incomingMsg, reply); }