2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-03 15:35:17 +00:00

[606-drop-packets-in-drop-class] Addressed minor comments (checkpoint before rebasing)

This commit is contained in:
Francis Dupont
2019-07-15 19:27:04 +02:00
parent 217be4532b
commit 330065ad5f
7 changed files with 27 additions and 7 deletions

View File

@@ -90,7 +90,7 @@
resort) definition. resort) definition.
</para></listitem> </para></listitem>
<listitem><para> <listitem><para>
When the incoming packet belongs the special DROP class it is When the incoming packet belongs the special class, "DROP", it is
dropped and an informational message is logged with the packet dropped and an informational message is logged with the packet
information. information.
</para></listitem> </para></listitem>

View File

@@ -2534,8 +2534,8 @@ It is merely echoed by the server.
The first step is to assess an incoming packet and assign it to The first step is to assess an incoming packet and assign it to
zero or more classes. zero or more classes.
The second step is to choose a subnet, possibly based on the The second step is to choose a subnet, possibly based on the
class information. When the incoming packet is in the "DROP" class information. When the incoming packet is in the special
special class it is dropped and an information message logged. class, "DROP", it is dropped and an information message logged.
The next step is to evaluate class expressions depending on the The next step is to evaluate class expressions depending on the
built-in "KNOWN"/"UNKNOWN" classes after host reservation lookup, built-in "KNOWN"/"UNKNOWN" classes after host reservation lookup,
using them for pool selection and assigning classes from host reservations. using them for pool selection and assigning classes from host reservations.

View File

@@ -2429,8 +2429,8 @@ should include options from the new option space:
The first step is to assess an incoming packet and assign it to The first step is to assess an incoming packet and assign it to
zero or more classes. zero or more classes.
Next, a subnet is chosen, possibly based on the Next, a subnet is chosen, possibly based on the
class information. When the incoming packet is inthe "DROP" class information. When the incoming packet is in the special
special class it is dropped and an information message logged. class, "DROP", it is dropped and an information message logged.
After that, class expressions are evaluated depending on the After that, class expressions are evaluated depending on the
built-in "KNOWN"/"UNKNOWN" classes after host reservation lookup, built-in "KNOWN"/"UNKNOWN" classes after host reservation lookup,
using them for pool/pd-pool selection and assigning classes from host using them for pool/pd-pool selection and assigning classes from host

View File

@@ -1010,7 +1010,8 @@ Dhcpv4Srv::processPacket(Pkt4Ptr& query, Pkt4Ptr& rsp, bool allow_packet_park) {
if (query->inClass("DROP")) { if (query->inClass("DROP")) {
LOG_INFO(packet4_logger, DHCP4_PACKET_DROP_DROP_CLASS) LOG_INFO(packet4_logger, DHCP4_PACKET_DROP_DROP_CLASS)
.arg(query->toText()); .arg(query->toText());
// increase pkt4-receive-drop stats? isc::stats::StatsMgr::instance().addValue("pkt4-receive-drop",
static_cast<int64_t>(1));
return; return;
} }

View File

@@ -10,6 +10,7 @@
#include <dhcp/tests/iface_mgr_test_config.h> #include <dhcp/tests/iface_mgr_test_config.h>
#include <dhcp4/tests/dhcp4_client.h> #include <dhcp4/tests/dhcp4_client.h>
#include <dhcp/option_int.h> #include <dhcp/option_int.h>
#include <stats/stats_mgr.h>
#include <algorithm> #include <algorithm>
#include <vector> #include <vector>
@@ -1154,6 +1155,14 @@ TEST_F(ClassifyTest, dropClass) {
// Option, dropped. // Option, dropped.
EXPECT_FALSE(client2.getContext().response_); EXPECT_FALSE(client2.getContext().response_);
// There should also be pkt4-receive-drop stat bumped up.
stats::StatsMgr& mgr = stats::StatsMgr::instance();
stats::ObservationPtr drop_stat = mgr.getObservation("pkt4-receive-drop");
// This statistic must be present and must be set to 1.
ASSERT_TRUE(drop_stat);
EXPECT_EQ(1, drop_stat->getInteger().first);
} }
} // end of anonymous namespace } // end of anonymous namespace

View File

@@ -687,7 +687,8 @@ Dhcpv6Srv::processPacket(Pkt6Ptr& query, Pkt6Ptr& rsp) {
if (query->inClass("DROP")) { if (query->inClass("DROP")) {
LOG_INFO(packet6_logger, DHCP6_PACKET_DROP_DROP_CLASS) LOG_INFO(packet6_logger, DHCP6_PACKET_DROP_DROP_CLASS)
.arg(query->toText()); .arg(query->toText());
// increase pkt6-receive-drop stats? StatsMgr::instance().addValue("pkt6-receive-drop",
static_cast<int64_t>(1));
return; return;
} }

View File

@@ -20,6 +20,7 @@
#include <dhcp6/tests/dhcp6_test_utils.h> #include <dhcp6/tests/dhcp6_test_utils.h>
#include <dhcp6/tests/dhcp6_client.h> #include <dhcp6/tests/dhcp6_client.h>
#include <asiolink/io_address.h> #include <asiolink/io_address.h>
#include <stats/stats_mgr.h>
#include <boost/pointer_cast.hpp> #include <boost/pointer_cast.hpp>
#include <string> #include <string>
@@ -2107,6 +2108,14 @@ TEST_F(ClassifyTest, dropClass) {
// Option, dropped. // Option, dropped.
EXPECT_FALSE(client2.getContext().response_); EXPECT_FALSE(client2.getContext().response_);
// There should also be pkt6-receive-drop stat bumped up.
stats::StatsMgr& mgr = stats::StatsMgr::instance();
stats::ObservationPtr drop_stat = mgr.getObservation("pkt6-receive-drop");
// This statistic must be present and must be set to 1.
ASSERT_TRUE(drop_stat);
EXPECT_EQ(1, drop_stat->getInteger().first);
} }
} // end of anonymous namespace } // end of anonymous namespace