20#ifndef MULTICASTFORWARDER_H
21#define MULTICASTFORWARDER_H
24#include "rt_dobby_schema.h"
27#include <netinet/in.h>
30#include <unordered_map>
50namespace MulticastForwarder
52bool set(
const std::shared_ptr<Netfilter> &netfilter,
53 const rt_defs_plugins_networking_data *pluginData,
54 const std::string &vethName,
55 const std::string &containerId,
56 const std::vector<std::string> &extIfaces);
58bool removeRules(
const std::shared_ptr<Netfilter> &netfilter,
59 const rt_defs_plugins_networking_data *pluginData,
60 const std::string &vethName,
61 const std::string &containerId,
62 const std::vector<std::string> &extIfaces);
65bool checkCompatibility();
66int checkAddressFamily(
const std::string &address);
67bool executeCommand(
const std::string &command);
69bool addSmcrouteRules(
const std::vector<std::string> &extIfaces,
const std::string &address,
const std::string &containerId);
70bool removeSmcrouteRules(
const std::string &containerId);
72std::string constructPreRoutingIptablesRule(
const std::string &containerId,
73 const std::string &address,
75 const int addressFamily);
76std::string constructForwardingIptablesRule(
const std::string &containerId,
77 const std::string &address,
79 const int addressFamily);
80std::string constructEbtablesRule(
const std::string &address,
81 const std::string &vethName,
82 const int addressFamily);
83std::string constructSmcrouteRules(
const std::string &extIface,
84 const std::string &address);
bool set(const std::shared_ptr< DobbyRdkPluginUtils > &utils, const std::shared_ptr< Netfilter > &netfilter, const std::shared_ptr< NetworkingHelper > &helper, const std::string &rootfsPath, const std::string &containerId, const NetworkType networkType)
Add iptables rules and create the /etc/resolv.conf file.
Definition DnsmasqSetup.cpp:173
bool removeRules(const std::shared_ptr< Netfilter > &netfilter, const std::shared_ptr< NetworkingHelper > &helper, const std::string &containerId)
Deletes dnsmasq rules for the container.
Definition DnsmasqSetup.cpp:256