Annotation of nono/host/netdriver_afpacket.h, revision 1.1.1.1

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: // AF_PACKET を用いたドライバ
                      8: // Linux 2.2 以降専用
                      9: 
                     10: #pragma once
                     11: 
                     12: #include "netdriver.h"
                     13: #include <sys/socket.h>
                     14: #include <netpacket/packet.h>
                     15: #include <net/ethernet.h>
                     16: 
                     17: class NetDriverAFPacket : public NetDriver
                     18: {
                     19:        using inherited = NetDriver;
                     20:  public:
                     21:        // コンストラクタ
                     22:        NetDriverAFPacket(EthernetDevice *parent_, int loglevel_,
                     23:                const std::string& devpath_);
                     24:        // デストラクタ
                     25:        ~NetDriverAFPacket() override;
                     26: 
                     27:        bool InitDriver() override;
                     28:        bool SendPacket(const std::vector<uint8>& data) override;
                     29: 
                     30:  protected:
                     31:        ssize_t RecvPacket() override;
                     32:        void MonitorUpdateMD(TextScreen&) override;
                     33: 
                     34:  private:
                     35:        void Close();
                     36: 
                     37:        int SelectInterface();
                     38: 
                     39:        sockaddr_ll sll {};
                     40: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.