17 #ifndef __LINUX_ROUTING_FILTER_IP_HPP__ 18 #define __LINUX_ROUTING_FILTER_IP_HPP__ 26 #include <boost/functional/hash.hpp> 63 uint16_t
begin()
const {
return begin_; }
66 uint16_t
end()
const {
return end_; }
69 uint16_t
mask()
const {
return ~(end_ - begin_); }
73 return begin_ == that.begin_ && end_ == that.end_;
78 : begin_(_begin), end_(_end) {}
95 : destinationMAC(_destinationMAC),
96 destinationIP(_destinationIP),
97 sourcePorts(_sourcePorts),
98 destinationPorts(_destinationPorts) {}
122 const std::string& link,
133 const std::string& link,
144 const std::string& link,
157 const std::string& link,
170 const std::string& link,
181 const std::string& link,
189 const std::string& link,
197 const std::string& link,
216 boost::hash_combine(seed, range.
begin());
217 boost::hash_combine(seed, range.
end());
224 #endif // __LINUX_ROUTING_FILTER_IP_HPP__
Classifier(const Option< net::MAC > &_destinationMAC, const Option< net::IP > &_destinationIP, const Option< PortRange > &_sourcePorts, const Option< PortRange > &_destinationPorts)
Definition: ip.hpp:90
uint16_t mask() const
Definition: ip.hpp:69
Result< std::vector< Filter< Classifier > > > filters(const std::string &link, const Handle &parent)
Definition: internal.hpp:769
Option< net::IP > destinationIP
Definition: ip.hpp:112
static Try< PortRange > fromBeginEnd(uint16_t begin, uint16_t end)
Definition: handle.hpp:38
Definition: type_utils.hpp:619
Future< Nothing > redirect(int_fd from, Option< int_fd > to, size_t chunk=4096, const std::vector< lambda::function< void(const std::string &)>> &hooks={})
Redirect output from the 'from' file descriptor to the 'to' file descriptor (or /dev/null if 'to' is ...
routing::filter::ip::PortRange argument_type
Definition: ip.hpp:211
Definition: action.hpp:66
Option< net::MAC > destinationMAC
Definition: ip.hpp:108
Definition: action.hpp:41
bool operator==(const Classifier &that) const
Definition: ip.hpp:100
Option< PortRange > sourcePorts
Definition: ip.hpp:114
std::ostream & operator<<(std::ostream &stream, const PortRange &range)
static Try< PortRange > fromBeginMask(uint16_t begin, uint16_t mask)
bool operator==(const PortRange &that) const
Definition: ip.hpp:71
Try< bool > exists(const std::string &link, const Handle &parent, const Classifier &classifier)
Result< std::vector< Classifier > > classifiers(const std::string &link, const Handle &parent)
Definition: internal.hpp:809
uint16_t end() const
Definition: ip.hpp:66
Option< PortRange > destinationPorts
Definition: ip.hpp:115
size_t result_type
Definition: ip.hpp:209
Definition: diagnosis.hpp:30
Try< uint32_t > classid(const std::string &hierarchy, const std::string &cgroup)
Try< bool > create(const std::string &link, const Handle &parent, const Classifier &classifier, const Option< Priority > &priority, const action::Redirect &redirect)
uint16_t begin() const
Definition: ip.hpp:63
result_type operator()(const argument_type &range) const
Definition: ip.hpp:213
void filter(Filter *filter)