20#include "pedigree/kernel/machine/Network.h"
21#include "pedigree/kernel/utilities/String.h"
23StationInfo::StationInfo()
28 broadcast(0xFFFFFFFF),
41 nIpv6Addresses(info.nIpv6Addresses),
42 subnetMask(info.subnetMask),
43 broadcast(info.broadcast),
44 gateway(info.gateway),
45 gatewayIpv6(info.gatewayIpv6),
46 dnsServers(info.dnsServers),
47 nDnsServers(info.nDnsServers),
49 nPackets(info.nPackets),
50 nDropped(info.nDropped),
53StationInfo::~StationInfo() {}
55Network::Network() : m_StationInfo(), m_NetworkStackGeneration(0) {
56 m_SpecificType.assign(
"Generic Network Device", 23);
59Network::Network(
Network* pDev) :
Device(pDev), m_StationInfo(), m_NetworkStackGeneration(0) {}
68 str.assign(
"Generic Network Device", 23);
72 str.assign(
"Generic Network Device", 23);
89 return a | (b << 8) | (c << 16) | (d << 24);
93 uint8_t g, uint8_t h, uint8_t i, uint8_t j, uint8_t k, uint8_t l,
94 uint8_t m, uint8_t n, uint8_t o, uint8_t p) {
95 uint8_t temp[16] = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p};
102 uint16_t* data =
reinterpret_cast<uint16_t*
>(buffer);
106 nBytes -=
sizeof(uint16_t);
111 uint8_t* data8 =
reinterpret_cast<uint8_t*
>(data);
117 sum = (sum & 0xFFFF) + (sum >> 16);
119 uint16_t ret =
static_cast<uint16_t
>(~sum);
124 m_StationInfo.nPackets++;
132 m_StationInfo.
nBad++;
@ Network
A communication device.
virtual bool setStationInfo(const StationInfo &info)
virtual void droppedPacket()
Called when a packet is dropped by the system.
virtual void dump(String &str)
virtual const StationInfo & getStationInfo()
static EXPORTED_PUBLIC uint16_t calculateChecksum(uintptr_t buffer, size_t nBytes)
virtual bool isConnected()
static EXPORTED_PUBLIC uint32_t convertToIpv4(uint8_t a, uint8_t b, uint8_t c, uint8_t d)
virtual void getName(String &str)
static EXPORTED_PUBLIC IpAddress convertToIpv6(uint8_t a, uint8_t b=0, uint8_t c=0, uint8_t d=0, uint8_t e=0, uint8_t f=0, uint8_t g=0, uint8_t h=0, uint8_t i=0, uint8_t j=0, uint8_t k=0, uint8_t l=0, uint8_t m=0, uint8_t n=0, uint8_t o=0, uint8_t p=0)
size_t nBad
Number of packets dropped by the filter.
size_t nDropped
Number of packets passed through the interface.