Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
4e77daeb
Commit
4e77daeb
authored
Sep 14, 2015
by
Francis Dupont
Committed by
JINMEI Tatuya
Oct 31, 2015
Browse files
[fd4o6] Added DHCPv4-over-DHCPv6 packet class
parent
78e278d1
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/lib/dhcp/Makefile.am
View file @
4e77daeb
...
...
@@ -15,7 +15,7 @@ CLEANFILES = *.gcno *.gcda
lib_LTLIBRARIES
=
libkea-dhcp++.la
libkea_dhcp___la_SOURCES
=
libkea_dhcp___la_SOURCES
+=
classify.cc classify.h
libkea_dhcp___la_SOURCES
+=
dhcp6.h dhcp4.h
libkea_dhcp___la_SOURCES
+=
dhcp6.h dhcp4.h
dhcp4o6.h
libkea_dhcp___la_SOURCES
+=
duid.cc duid.h
libkea_dhcp___la_SOURCES
+=
hwaddr.cc hwaddr.h
libkea_dhcp___la_SOURCES
+=
iface_mgr.cc iface_mgr.h
...
...
@@ -48,6 +48,7 @@ libkea_dhcp___la_SOURCES += protocol_util.cc protocol_util.h
libkea_dhcp___la_SOURCES
+=
pkt.cc pkt.h
libkea_dhcp___la_SOURCES
+=
pkt6.cc pkt6.h
libkea_dhcp___la_SOURCES
+=
pkt4.cc pkt4.h
libkea_dhcp___la_SOURCES
+=
pkt4o6.cc pkt4o6.h
libkea_dhcp___la_SOURCES
+=
pkt_filter.h pkt_filter.cc
libkea_dhcp___la_SOURCES
+=
pkt_filter6.h pkt_filter6.cc
libkea_dhcp___la_SOURCES
+=
pkt_filter_inet.cc pkt_filter_inet.h
...
...
src/lib/dhcp/pkt4o6.cc
0 → 100644
View file @
4e77daeb
// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
#include <asiolink/io_address.h>
#include <dhcp/dhcp4.h>
#include <dhcp/libdhcp++.h>
#include <dhcp/option_int.h>
#include <dhcp/pkt4o6.h>
#include <exceptions/exceptions.h>
#include <algorithm>
#include <iostream>
#include <sstream>
using
namespace
std
;
using
namespace
isc
::
dhcp
;
using
namespace
isc
::
asiolink
;
namespace
{
/// @brief Default address used in Pkt4 constructor
const
IOAddress
DEFAULT_ADDRESS
(
"0.0.0.0"
);
}
namespace
isc
{
namespace
dhcp
{
Pkt4o6
::
Pkt4o6
(
const
uint8_t
*
data
,
size_t
len
,
const
Pkt6Ptr
&
pkt6
)
:
Pkt4
(
data
,
len
),
pkt6_
(
pkt6
)
{
setIface
(
pkt6
->
getIface
());
setIndex
(
pkt6
->
getIndex
());
setRemoteAddr
(
pkt6
->
getRemoteAddr
());
}
}
// end of namespace isc::dhcp
}
// end of namespace isc
src/lib/dhcp/pkt4o6.h
0 → 100644
View file @
4e77daeb
// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
#ifndef PKT4O6_H
#define PKT4O6_H
#include <dhcp/pkt4.h>
#include <dhcp/pkt6.h>
#include <boost/shared_ptr.hpp>
namespace
isc
{
namespace
dhcp
{
/// @brief Represents DHCPv4-over-DHCPv6 packet
///
/// This class derives from @c Pkt4 in order to be handled by
/// the DHCPv4 server code. It includes a shared pointer to the
/// DHCPv6 message too.
class
Pkt4o6
:
public
Pkt4
{
public:
/// @brief Constructor, used in message reception.
///
/// @param data pointer to received data
/// @param len size of buffer to be allocated for this packet
/// @param pkt6 encapsulating DHCPv6 message.
Pkt4o6
(
const
uint8_t
*
data
,
size_t
len
,
const
Pkt6Ptr
&
pkt6
);
/// @brief Returns encapsulating DHCPv6 message
const
Pkt6Ptr
&
getPkt6
()
{
return
(
pkt6_
);
}
protected:
/// Encapsulating DHCPv6 message
const
Pkt6Ptr
&
pkt6_
;
};
// Pkt4o6 class
/// @brief A pointer to Pkt4o6 object.
typedef
boost
::
shared_ptr
<
Pkt4o6
>
Pkt4o6Ptr
;
}
// isc::dhcp namespace
}
// isc namespace
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment