Kea 2.5.8
pkt_filter_lpf.h
Go to the documentation of this file.
1// Copyright (C) 2013-2024 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#ifndef PKT_FILTER_LPF_H
8#define PKT_FILTER_LPF_H
9
10#include <dhcp/pkt_filter.h>
11
12#include <util/buffer.h>
13
14namespace isc {
15namespace dhcp {
16
23class PktFilterLPF : public PktFilter {
24public:
25
31 virtual bool isDirectResponseSupported() const {
32 return (true);
33 }
34
41 virtual bool isSocketReceivedTimeSupported() const;
42
52 virtual SocketInfo openSocket(Iface& iface,
53 const isc::asiolink::IOAddress& addr,
54 const uint16_t port,
55 const bool receive_bcast,
56 const bool send_bcast);
57
65 virtual Pkt4Ptr receive(Iface& iface, const SocketInfo& socket_info);
66
75 virtual int send(const Iface& iface, uint16_t sockfd,
76 const Pkt4Ptr& pkt);
77
78};
79
80} // namespace isc::dhcp
81} // namespace isc
82
83#endif // PKT_FILTER_LPF_H
Represents a single network interface.
Definition: iface_mgr.h:118
Packet handling class using Linux Packet Filtering.
virtual bool isDirectResponseSupported() const
Check if packet can be sent to the host without address directly.
virtual bool isSocketReceivedTimeSupported() const
Check if the socket received time is supported.
virtual int send(const Iface &iface, uint16_t sockfd, const Pkt4Ptr &pkt)
Send packet over specified socket.
virtual SocketInfo openSocket(Iface &iface, const isc::asiolink::IOAddress &addr, const uint16_t port, const bool receive_bcast, const bool send_bcast)
Open primary and fallback socket.
virtual Pkt4Ptr receive(Iface &iface, const SocketInfo &socket_info)
Receive packet over specified socket.
Abstract packet handling class.
Definition: pkt_filter.h:44
boost::shared_ptr< Pkt4 > Pkt4Ptr
A pointer to Pkt4 object.
Definition: pkt4.h:555
Defines the logger used by the top-level component of kea-lfc.
Holds information about socket.
Definition: socket_info.h:19