- clang format + naming improved
This commit is contained in:
@@ -3,10 +3,10 @@
|
||||
#include "HL_NetworkFrame.h"
|
||||
#include "HL_InternetAddress.h"
|
||||
|
||||
#define ETHERTYPE_MPLS_UC (0x8847)
|
||||
#define ETHERTYPE_MPLS_MC (0x8848)
|
||||
#define ETHERTYPE_IPV6 (0x86dd)
|
||||
#define ETHERTYPE_IP (0x0800)
|
||||
#define ETHERTYPE_MPLS_UC (0x8847)
|
||||
#define ETHERTYPE_MPLS_MC (0x8848)
|
||||
#define ETHERTYPE_IPV6 (0x86dd)
|
||||
#define ETHERTYPE_IP (0x0800)
|
||||
|
||||
#define MPLS_STACK_MASK (0x00000100)
|
||||
#define MPLS_STACK_SHIFT (8)
|
||||
@@ -34,7 +34,7 @@ NetworkFrame::Payload NetworkFrame::GetUdpPayloadForRaw(const Packet& data)
|
||||
|
||||
NetworkFrame::Payload NetworkFrame::GetUdpPayloadForEthernet(const Packet& data)
|
||||
{
|
||||
Packet result(data);
|
||||
Packet result(data);
|
||||
|
||||
const EthernetHeader* ethernet = reinterpret_cast<const EthernetHeader*>(data.mData);
|
||||
|
||||
@@ -53,8 +53,7 @@ NetworkFrame::Payload NetworkFrame::GetUdpPayloadForEthernet(const Packet& data)
|
||||
result.mData += sizeof(VlanHeader);
|
||||
result.mLength -= sizeof(VlanHeader);
|
||||
proto = ntohs(vlan->mData);
|
||||
}
|
||||
while (proto == 0x8100);
|
||||
} while (proto == 0x8100);
|
||||
}
|
||||
|
||||
// Skip MPLS headers
|
||||
@@ -63,11 +62,11 @@ NetworkFrame::Payload NetworkFrame::GetUdpPayloadForEthernet(const Packet& data)
|
||||
case ETHERTYPE_MPLS_UC:
|
||||
case ETHERTYPE_MPLS_MC:
|
||||
// Parse MPLS here until marker "bottom of mpls stack"
|
||||
for(bool bottomOfStack = false; !bottomOfStack;
|
||||
bottomOfStack = ((ntohl(*(uint32_t*)(result.mData - 4)) & MPLS_STACK_MASK) >> MPLS_STACK_SHIFT) != 0)
|
||||
for (bool bottomOfStack = false; !bottomOfStack;
|
||||
bottomOfStack = ((ntohl(*(uint32_t*)(result.mData - 4)) & MPLS_STACK_MASK) >> MPLS_STACK_SHIFT) != 0)
|
||||
{
|
||||
result.mData += 4;
|
||||
result.mLength -=4;
|
||||
result.mLength -= 4;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -156,7 +155,7 @@ NetworkFrame::Payload NetworkFrame::GetUdpPayloadForLoopback(const Packet& data)
|
||||
|
||||
NetworkFrame::Payload NetworkFrame::GetUdpPayloadForIp4(const Packet& data)
|
||||
{
|
||||
Packet result(data);
|
||||
Packet result(data);
|
||||
const Ip4Header* ip4 = reinterpret_cast<const Ip4Header*>(data.mData);
|
||||
if (ip4->mProtocol != IPPROTO_UDP && ip4->mProtocol != 0)
|
||||
return Payload();
|
||||
@@ -187,40 +186,36 @@ NetworkFrame::Payload NetworkFrame::GetUdpPayloadForIp4(const Packet& data)
|
||||
struct Ip6Header
|
||||
{
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
uint8_t traffic_class_hi:4,
|
||||
version:4;
|
||||
uint8_t flow_label_hi:4,
|
||||
traffic_class_lo:4;
|
||||
uint16_t flow_label_lo;
|
||||
uint8_t traffic_class_hi : 4, version : 4;
|
||||
uint8_t flow_label_hi : 4, traffic_class_lo : 4;
|
||||
uint16_t flow_label_lo;
|
||||
|
||||
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||
uint8_t version:4,
|
||||
traffic_class_hi:4;
|
||||
uint8_t traffic_class_lo:4,
|
||||
flow_label_hi:4;
|
||||
uint16_t flow_label_lo;
|
||||
uint8_t version : 4, traffic_class_hi : 4;
|
||||
uint8_t traffic_class_lo : 4, flow_label_hi : 4;
|
||||
uint16_t flow_label_lo;
|
||||
#else
|
||||
# error "Please fix endianness defines"
|
||||
#error "Please fix endianness defines"
|
||||
#endif
|
||||
|
||||
uint16_t payload_len;
|
||||
uint8_t next_header;
|
||||
uint8_t hop_limit;
|
||||
uint16_t payload_len;
|
||||
uint8_t next_header;
|
||||
uint8_t hop_limit;
|
||||
|
||||
struct in6_addr src_ip;
|
||||
struct in6_addr dst_ip;
|
||||
struct in6_addr src_ip;
|
||||
struct in6_addr dst_ip;
|
||||
};
|
||||
|
||||
NetworkFrame::Payload NetworkFrame::GetUdpPayloadForIp6(const Packet& data)
|
||||
{
|
||||
Packet result(data);
|
||||
Packet result(data);
|
||||
const Ip6Header* ip6 = reinterpret_cast<const Ip6Header*>(result.mData);
|
||||
/*if (ip6->mProtocol != IPPROTO_UDP && ip4->mProtocol != 0)
|
||||
return PacketData(nullptr, 0);
|
||||
*/
|
||||
result.mData += sizeof(Ip6Header);
|
||||
result.mLength -= sizeof(Ip6Header);
|
||||
//std::cout << sizeof(Ip6Header) << std::endl;
|
||||
// std::cout << sizeof(Ip6Header) << std::endl;
|
||||
|
||||
const UdpHeader* udp = reinterpret_cast<const UdpHeader*>(result.mData);
|
||||
result.mData += sizeof(UdpHeader);
|
||||
|
||||
Reference in New Issue
Block a user