Repository: mesos Updated Branches: refs/heads/master d93906aea -> da1b7161e
Added an interface to get all IP packet filters. Review: https://reviews.apache.org/r/31870 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/da1b7161 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/da1b7161 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/da1b7161 Branch: refs/heads/master Commit: da1b7161e05623d968483c9ebcb85896239c2b74 Parents: d93906a Author: Jie Yu <[email protected]> Authored: Tue Mar 10 13:51:52 2015 -0700 Committer: Jie Yu <[email protected]> Committed: Tue Mar 10 13:51:53 2015 -0700 ---------------------------------------------------------------------- src/linux/routing/filter/filter.hpp | 6 +++--- src/linux/routing/filter/ip.cpp | 8 ++++++++ src/linux/routing/filter/ip.hpp | 7 +++++++ 3 files changed, 18 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/da1b7161/src/linux/routing/filter/filter.hpp ---------------------------------------------------------------------- diff --git a/src/linux/routing/filter/filter.hpp b/src/linux/routing/filter/filter.hpp index 194703f..d4ea099 100644 --- a/src/linux/routing/filter/filter.hpp +++ b/src/linux/routing/filter/filter.hpp @@ -42,9 +42,9 @@ namespace filter { // satisfies the conditions specified in the classifier. If the // priority is not specified, the kernel will assign a priority to the // filter. -// TODO(jieyu): Currently, this data structure is not directly exposed -// to the user because libnl does not support getting actions of a -// filter. Expose this data structure once libnl fixes the issue. +// TODO(jieyu): Currently, libnl does not support getting all actions +// associated with a filter. In other words, the list of actions +// obtained from the filter might not be the complete list. template <typename Classifier> class Filter { http://git-wip-us.apache.org/repos/asf/mesos/blob/da1b7161/src/linux/routing/filter/ip.cpp ---------------------------------------------------------------------- diff --git a/src/linux/routing/filter/ip.cpp b/src/linux/routing/filter/ip.cpp index 9d8639b..de64071 100644 --- a/src/linux/routing/filter/ip.cpp +++ b/src/linux/routing/filter/ip.cpp @@ -528,6 +528,14 @@ Try<bool> remove( } +Result<vector<Filter<Classifier>>> filters( + const string& link, + const queueing::Handle& parent) +{ + return internal::filters<Classifier>(link, parent); +} + + Result<vector<Classifier>> classifiers( const string& link, const queueing::Handle& parent) http://git-wip-us.apache.org/repos/asf/mesos/blob/da1b7161/src/linux/routing/filter/ip.hpp ---------------------------------------------------------------------- diff --git a/src/linux/routing/filter/ip.hpp b/src/linux/routing/filter/ip.hpp index 0d1dd50..b540602 100644 --- a/src/linux/routing/filter/ip.hpp +++ b/src/linux/routing/filter/ip.hpp @@ -197,6 +197,13 @@ Try<bool> remove( const Classifier& classifier); +// Returns all the IP packet filters attached to the given parent on +// the link. Returns none if the link or the parent is not found. +Result<std::vector<Filter<Classifier>>> filters( + const std::string& link, + const queueing::Handle& parent); + + // Returns the classifiers of all the IP packet filters attached to // the given parent on the link. Returns none if the link or the // parent is not found.
