You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/01/08 07:41:16 UTC

svn commit: r124637 - incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp

Author: erodriguez
Date: Fri Jan  7 22:41:15 2005
New Revision: 124637

URL: http://svn.apache.org/viewcvs?view=rev&rev=124637
Log:
DHCP Extensions, options specific to DHCP per RFC 2132.
Added:
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/BootfileName.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ClientIdentifier.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/DhcpMessageType.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/IpAddressLeaseTime.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/MaximumDhcpMessageSize.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/Message.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/OptionOverload.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ParameterRequestList.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RebindingTimeValue.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RenewalTimeValue.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RequestedIpAddress.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ServerIdentifier.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/TftpServerName.java
   incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/VendorClassIdentifier.java

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/BootfileName.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/BootfileName.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/BootfileName.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,45 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used to identify a bootfile when the 'file' field in
+ * the DHCP header has been used for DHCP options.
+ * 
+ * The code for this option is 67, and its minimum length is 1.
+ */
+public class BootfileName extends DhcpOption
+{
+	private byte[] bootFileName;
+	
+	public BootfileName( byte[] bootFileName )
+	{
+		super( 67, 1 );
+		this.bootFileName = bootFileName;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( bootFileName );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ClientIdentifier.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ClientIdentifier.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ClientIdentifier.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,63 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used by DHCP clients to specify their unique
+ * identifier.  DHCP servers use this value to index their database of
+ * address bindings.  This value is expected to be unique for all
+ * clients in an administrative domain.
+ * 
+ * Identifiers SHOULD be treated as opaque objects by DHCP servers.
+ * 
+ * The client identifier MAY consist of type-value pairs similar to the
+ * 'htype'/'chaddr' fields. For instance, it MAY consist
+ * of a hardware type and hardware address. In this case the type field
+ * SHOULD be one of the ARP hardware types defined in STD2.  A
+ * hardware type of 0 (zero) should be used when the value field
+ * contains an identifier other than a hardware address (e.g. a fully
+ * qualified domain name).
+ * 
+ * For correct identification of clients, each client's client-
+ * identifier MUST be unique among the client-identifiers used on the
+ * subnet to which the client is attached.  Vendors and system
+ * administrators are responsible for choosing client-identifiers that
+ * meet this requirement for uniqueness.
+ * 
+ * The code for this option is 61, and its minimum length is 2.
+ */
+public class ClientIdentifier extends DhcpOption
+{
+	private byte[] clientIdentifier;
+	
+	public ClientIdentifier( byte[] clientIdentifier )
+	{
+		super( 61, 1 );
+		this.clientIdentifier = clientIdentifier;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( clientIdentifier );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/DhcpMessageType.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/DhcpMessageType.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/DhcpMessageType.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,55 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used to convey the type of the DHCP message.  The code
+ * for this option is 53, and its length is 1.  Legal values for this
+ * option are:
+ * 
+ *         Value   Message Type
+ *         -----   ------------
+ *           1     DHCPDISCOVER
+ *           2     DHCPOFFER
+ *           3     DHCPREQUEST
+ *           4     DHCPDECLINE
+ *           5     DHCPACK
+ *           6     DHCPNAK
+ *           7     DHCPRELEASE
+ *           8     DHCPINFORM
+ */
+public class DhcpMessageType extends DhcpOption
+{
+	private byte[] messageType;
+	
+	public DhcpMessageType( byte[] messageType )
+	{
+		super( 53, 1 );
+		this.messageType = messageType;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( messageType );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/IpAddressLeaseTime.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/IpAddressLeaseTime.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/IpAddressLeaseTime.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,50 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used in a client request (DHCPDISCOVER or DHCPREQUEST)
+ * to allow the client to request a lease time for the IP address.  In a
+ * server reply (DHCPOFFER), a DHCP server uses this option to specify
+ * the lease time it is willing to offer.
+ * 
+ * The time is in units of seconds, and is specified as a 32-bit
+ * unsigned integer.
+ * 
+ * The code for this option is 51, and its length is 4.
+ */
+public class IpAddressLeaseTime extends DhcpOption
+{
+	private byte[] ipAddressLeaseTime;
+	
+	public IpAddressLeaseTime( byte[] ipAddressLeaseTime )
+	{
+		super( 51, 4 );
+		this.ipAddressLeaseTime = ipAddressLeaseTime;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( ipAddressLeaseTime );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/MaximumDhcpMessageSize.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/MaximumDhcpMessageSize.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/MaximumDhcpMessageSize.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,49 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option specifies the maximum length DHCP message that it is
+ * willing to accept.  The length is specified as an unsigned 16-bit
+ * integer.  A client may use the maximum DHCP message size option in
+ * DHCPDISCOVER or DHCPREQUEST messages, but should not use the option
+ * in DHCPDECLINE messages.
+ * 
+ * The code for this option is 57, and its length is 2.  The minimum
+ * legal value is 576 octets.
+ */
+public class MaximumDhcpMessageSize extends DhcpOption
+{
+	private byte[] maximumDhcpMessageSize;
+	
+	public MaximumDhcpMessageSize( byte[] maximumDhcpMessageSize )
+	{
+		super( 57, 2 );
+		this.maximumDhcpMessageSize = maximumDhcpMessageSize;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( maximumDhcpMessageSize );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/Message.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/Message.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/Message.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,49 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used by a DHCP server to provide an error message to a
+ * DHCP client in a DHCPNAK message in the event of a failure. A client
+ * may use this option in a DHCPDECLINE message to indicate the why the
+ * client declined the offered parameters.  The message consists of n
+ * octets of NVT ASCII text, which the client may display on an
+ * available output device.
+ * 
+ * The code for this option is 56 and its minimum length is 1.
+ */
+public class Message extends DhcpOption
+{
+	private byte[] message;
+	
+	public Message( byte[] message )
+	{
+		super( 56, 1 );
+		this.message = message;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( message );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/OptionOverload.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/OptionOverload.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/OptionOverload.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,58 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used to indicate that the DHCP 'sname' or 'file'
+ * fields are being overloaded by using them to carry DHCP options. A
+ * DHCP server inserts this option if the returned parameters will
+ * exceed the usual space allotted for options.
+ * 
+ * If this option is present, the client interprets the specified
+ * additional fields after it concludes interpretation of the standard
+ * option fields.
+ * 
+ * The code for this option is 52, and its length is 1.  Legal values
+ * for this option are:
+ * 
+ *         Value   Meaning
+ *         -----   --------
+ *           1     the 'file' field is used to hold options
+ *           2     the 'sname' field is used to hold options
+ *           3     both fields are used to hold options
+ */
+public class OptionOverload extends DhcpOption
+{
+	private byte[] optionOverload;
+	
+	public OptionOverload( byte[] optionOverload )
+	{
+		super( 52, 1 );
+		this.optionOverload = optionOverload;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( optionOverload );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ParameterRequestList.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ParameterRequestList.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ParameterRequestList.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,52 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used by a DHCP client to request values for specified
+ * configuration parameters.  The list of requested parameters is
+ * specified as n octets, where each octet is a valid DHCP option code
+ * as defined in this document.
+ * 
+ * The client MAY list the options in order of preference.  The DHCP
+ * server is not required to return the options in the requested order,
+ * but MUST try to insert the requested options in the order requested
+ * by the client.
+ * 
+ * The code for this option is 55.  Its minimum length is 1.
+ */
+public class ParameterRequestList extends DhcpOption
+{
+	private byte[] parameterRequestList;
+	
+	public ParameterRequestList( byte[] parameterRequestList )
+	{
+		super( 55, 1 );
+		this.parameterRequestList = parameterRequestList;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( parameterRequestList );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RebindingTimeValue.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RebindingTimeValue.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RebindingTimeValue.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,48 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option specifies the time interval from address assignment until
+ * the client transitions to the REBINDING state.
+ * 
+ * The value is in units of seconds, and is specified as a 32-bit
+ * unsigned integer.
+ * 
+ * The code for this option is 59, and its length is 4.
+ */
+public class RebindingTimeValue extends DhcpOption
+{
+	private int rebindingTimeValue;
+	
+	public RebindingTimeValue( int rebindingTimeValue )
+	{
+		super( 59, 4 );
+		this.rebindingTimeValue = rebindingTimeValue;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.putInt( rebindingTimeValue );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RenewalTimeValue.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RenewalTimeValue.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RenewalTimeValue.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,48 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option specifies the time interval from address assignment until
+ * the client transitions to the RENEWING state.
+ * 
+ * The value is in units of seconds, and is specified as a 32-bit
+ * unsigned integer.
+ * 
+ * The code for this option is 58, and its length is 4.
+ */
+public class RenewalTimeValue extends DhcpOption
+{
+	private int renewalTimeValue;
+	
+	public RenewalTimeValue( int renewalTimeValue )
+	{
+		super( 58, 4 );
+		this.renewalTimeValue = renewalTimeValue;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.putInt( renewalTimeValue );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RequestedIpAddress.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RequestedIpAddress.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/RequestedIpAddress.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,45 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used in a client request (DHCPDISCOVER) to allow the
+ * client to request that a particular IP address be assigned.
+ * 
+ * The code for this option is 50, and its length is 4.
+ */
+public class RequestedIpAddress extends DhcpOption
+{
+	private byte[] requestedIpAddress;
+	
+	public RequestedIpAddress( byte[] requestedIpAddress )
+	{
+		super( 50, 4 );
+		this.requestedIpAddress = requestedIpAddress;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( requestedIpAddress );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ServerIdentifier.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ServerIdentifier.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/ServerIdentifier.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,53 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used in DHCPOFFER and DHCPREQUEST messages, and may
+ * optionally be included in the DHCPACK and DHCPNAK messages.  DHCP
+ * servers include this option in the DHCPOFFER in order to allow the
+ * client to distinguish between lease offers.  DHCP clients use the
+ * contents of the 'server identifier' field as the destination address
+ * for any DHCP messages unicast to the DHCP server.  DHCP clients also
+ * indicate which of several lease offers is being accepted by including
+ * this option in a DHCPREQUEST message.
+ * 
+ * The identifier is the IP address of the selected server.
+ * 
+ * The code for this option is 54, and its length is 4.
+ */
+public class ServerIdentifier extends DhcpOption
+{
+	private byte[] serverIdentifier;
+	
+	public ServerIdentifier( byte[] serverIdentifier )
+	{
+		super( 54, 4 );
+		this.serverIdentifier = serverIdentifier;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( serverIdentifier );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/TftpServerName.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/TftpServerName.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/TftpServerName.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,45 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used to identify a TFTP server when the 'sname' field
+ * in the DHCP header has been used for DHCP options.
+ * 
+ * The code for this option is 66, and its minimum length is 1.
+ */
+public class TftpServerName extends DhcpOption
+{
+	private byte[] tftpServerName;
+	
+	public TftpServerName( byte[] tftpServerName )
+	{
+		super( 66, 1 );
+		this.tftpServerName = tftpServerName;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( tftpServerName );
+	}
+}
+

Added: incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/VendorClassIdentifier.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/VendorClassIdentifier.java?view=auto&rev=124637
==============================================================================
--- (empty file)
+++ incubator/directory/dhcp/trunk/core/src/java/org/apache/dhcp/options/dhcp/VendorClassIdentifier.java	Fri Jan  7 22:41:15 2005
@@ -0,0 +1,54 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.dhcp.options.dhcp;
+
+import java.nio.ByteBuffer;
+
+import org.apache.dhcp.options.DhcpOption;
+
+/**
+ * This option is used by DHCP clients to optionally identify the vendor
+ * type and configuration of a DHCP client.  The information is a string
+ * of n octets, interpreted by servers.  Vendors may choose to define
+ * specific vendor class identifiers to convey particular configuration
+ * or other identification information about a client.  For example, the
+ * identifier may encode the client's hardware configuration.  Servers
+ * not equipped to interpret the class-specific information sent by a
+ * client MUST ignore it (although it may be reported). Servers that
+ * 
+ * respond SHOULD only use option 43 to return the vendor-specific
+ * information to the client.
+ * 
+ * The code for this option is 60, and its minimum length is 1.
+ */
+public class VendorClassIdentifier extends DhcpOption
+{
+	private byte[] vendorClassIdentifier;
+	
+	public VendorClassIdentifier( byte[] vendorClassIdentifier )
+	{
+		super( 60, 1 );
+		this.vendorClassIdentifier = vendorClassIdentifier;
+	}
+	
+	protected void valueToByteBuffer( ByteBuffer out )
+	{
+		out.put( vendorClassIdentifier );
+	}
+}
+