/* * Copyright 2009-2014 Jagornet Technologies, LLC. All Rights Reserved. * * This software is the proprietary information of Jagornet Technologies, LLC. * Use is subject to license terms. * */ /* * This file V4AddrBindingManager.java is part of Jagornet DHCP. * * Jagornet DHCP is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Jagornet DHCP is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jagornet DHCP. If not, see <http://www.gnu.org/licenses/>. * */ package com.jagornet.dhcp.server.request.binding; import com.jagornet.dhcp.db.IaAddress; import com.jagornet.dhcp.db.IdentityAssoc; import com.jagornet.dhcp.message.DhcpMessage; import com.jagornet.dhcp.server.config.DhcpLink; import com.jagornet.dhcp.server.config.DhcpServerConfigException; /** * The Interface V4AddrBindingManager. The interface for DHCPv4 type * addresses, for use by the DhcpV4XXXProcessor classes. * * @author A. Gregory Rabil */ public interface V4AddrBindingManager extends StaticBindingManager { /** * Initialize the manager. * * @throws DhcpServerConfigException */ public void init() throws DhcpServerConfigException; /** * Find current binding. * * @param clientLink the client link * @param clientIdOption the client id option * @param requestMsg the request msg * * @return the binding */ public Binding findCurrentBinding(DhcpLink clientLink, byte[] macAddr, DhcpMessage requestMsg); /** * Creates the solicit binding. * * @param clientLink the client link * @param clientIdOption the client id option * @param requestMsg the request msg * @param rapidCommit the rapid commit * * @return the binding */ public Binding createDiscoverBinding(DhcpLink clientLink, byte[] macAddr, DhcpMessage requestMsg, byte state); /** * Update binding. * * @param binding the binding * @param clientLink the client link * @param clientIdOption the client id option * @param requestMsg the request msg * @param state the state * * @return the binding */ public Binding updateBinding(Binding binding, DhcpLink clientLink, byte[] macAddr, DhcpMessage requestMsg, byte state); /** * Release ia address. * * @param iaAddr the ia addr */ public void releaseIaAddress(IdentityAssoc ia, IaAddress iaAddr); /** * Decline ia address. * * @param iaAddr the ia addr */ public void declineIaAddress(IdentityAssoc ia, IaAddress iaAddr); }