#ifndef LINK_LAYER_HPP_FGEK0QTH #define LINK_LAYER_HPP_FGEK0QTH #include "ethernet_device.hpp" #include #include #include #include #include #include #include #include #include class LinkLayerIndication { public: using IndicationCallback = std::function; virtual void indicate(IndicationCallback) = 0; virtual ~LinkLayerIndication() = default; }; class LinkLayer : public vanetza::access::Interface, public LinkLayerIndication { public: virtual void set_source_address(const vanetza::MacAddress&) {}; }; boost::optional> parse_ip_port(const std::string& ip_port); std::unique_ptr create_link_layer(boost::asio::io_context&, const EthernetDevice&, const std::string& name, const boost::program_options::variables_map& vm); void add_link_layer_options(boost::program_options::options_description&); #endif /* LINK_LAYER_HPP_FGEK0QTH */