17 #ifndef HH_SENF_Ext_NetEmu_P2PTunnel_TunnelInterface_ 18 #define HH_SENF_Ext_NetEmu_P2PTunnel_TunnelInterface_ 1 44 void ifaceIdFactory(boost::shared_ptr<InterfaceIdFactoryBase> factory);
50 template <
class Output,
class Input>
60 virtual bool v_enabled()
const override;
61 virtual void v_id(
MACAddress const &
id)
override;
63 virtual void v_mcAdd(
MACAddress const & address)
override;
64 virtual void v_mcDrop(
MACAddress const & address)
override;
65 virtual boost::uint8_t v_linkTypeId()
const override;
66 std::string
const & v_device()
const override;
70 boost::shared_ptr<InterfaceIdFactoryBase> ifaceIdFactory_;
83 :
private detail::TunnelServerInterfaceNet,
95 void sndBuf(
unsigned sndbuf);
97 void rcvBuf(
unsigned rcvbuf);
99 unsigned fragmentationThreshold(
MACAddress const & client)
const;
100 void fragmentationThreshold(
MACAddress const & client,
unsigned mtu);
102 unsigned maxBurst()
const;
103 void maxBurst(
unsigned v);
109 virtual unsigned v_mtu()
const override;
110 virtual void v_mtu(
unsigned v)
override;
111 virtual bool v_promisc()
const override;
112 virtual void v_promisc(
bool v)
override;
113 virtual bool v_annotationMode()
const override;
114 virtual void v_annotationMode(
bool a)
override;
117 unsigned sndBufSize_;
118 unsigned rcvBufSize_;
123 :
private detail::TunnelClientInterfaceNet,
136 bool established()
const;
142 void sndBuf(
unsigned sndbuf);
144 void rcvBuf(
unsigned rcvbuf);
146 unsigned fragmentationThreshold()
const;
147 void fragmentationThreshold(
unsigned mtu);
149 unsigned maxBurst()
const;
150 void maxBurst(
unsigned v);
156 virtual unsigned v_mtu()
const override;
157 virtual void v_mtu(
unsigned v)
override;
158 virtual bool v_promisc()
const override;
159 virtual void v_promisc(
bool v)
override;
160 virtual bool v_annotationMode()
const override;
161 virtual void v_annotationMode(
bool a)
override;
165 unsigned sndBufSize_;
166 unsigned rcvBufSize_;
config::time_type clock_type
senf::ppi::QueueingAlgorithm & qAlgorithm() const
TunnelController internal header.
std::map< CapacityDirection, unsigned > Capacity
virtual void v_enable()=0
Called to enable interface.
unsigned mtu() const
Get interface MTU.
virtual void v_disable()=0
Called to disable interface.
INet6SocketAddress const & address() const
TypedInterfaceDecorator< TunnelServerInterface, Interface::Decorator > Decorator
std::unique_ptr< QueueingAlgorithm > ptr
detail::TunnelControllerBase & tunnelCtrlBase()
InterfaceAPIBase public header.
InterfaceId public header.
TypedInterfaceDecorator< TunnelClientInterface, Interface::Decorator > Decorator
ppi::connector::PassiveInputJack< EthernetPacket > input
Hardware interface base class.
ppi::connector::ActiveOutputJack< EthernetPacket > output
ClockService::clock_type timeout() const
Specialized Interface decorator base-class.
boost::shared_ptr< InterfaceIdFactoryBase > ifaceIdFactory()
TunnelInterfaceBase(Output &output, Input &input, detail::TunnelControllerBase &ctrlBase, INet6SocketAddress const &address)
virtual ~TunnelInterfaceBase()