diff options
author | Ido Barnea <ibarnea@cisco.com> | 2016-09-26 16:26:37 +0300 |
---|---|---|
committer | Ido Barnea <ibarnea@cisco.com> | 2016-10-05 10:45:28 +0300 |
commit | 2223955b8eb3b378c1ab79e3735ed340852b04b9 (patch) | |
tree | 334b533001dd013a5e5293f61b835341fdf1f300 /src/common/Network | |
parent | a42bf7bc43e78e63c266c22cccf15ce3f4cab297 (diff) |
pre test: Some small fixes
Diffstat (limited to 'src/common/Network')
-rw-r--r-- | src/common/Network/Packet/Arp.h | 46 | ||||
-rwxr-xr-x | src/common/Network/Packet/MacAddress.h | 11 |
2 files changed, 53 insertions, 4 deletions
diff --git a/src/common/Network/Packet/Arp.h b/src/common/Network/Packet/Arp.h new file mode 100644 index 00000000..a16605bd --- /dev/null +++ b/src/common/Network/Packet/Arp.h @@ -0,0 +1,46 @@ +/* +Copyright (c) 2016-2016 Cisco Systems, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +#ifndef _ARP_H_ +#define _ARP_H_ +#include "MacAddress.h" + +#pragma pack(push, 1) +class ArpHdr { + public: + enum arp_hdr_enum_e { + ARP_HDR_HRD_ETHER = 1, + ARP_HDR_OP_REQUEST = 1, /* request to resolve address */ + ARP_HDR_OP_REPLY = 2, /* response to previous request */ + ARP_HDR_OP_REVREQUEST = 3, /* request proto addr given hardware */ + ARP_HDR_OP_REVREPLY = 4, /* response giving protocol address */ + ARP_HDR_OP_INVREQUEST = 5, /* request to identify peer */ + ARP_HDR_OP_INVREPLY = 6, /* response identifying peer */ + }; + + public: + uint16_t m_arp_hrd; /* format of hardware address */ + uint16_t m_arp_pro; /* format of protocol address */ + uint8_t m_arp_hln; /* length of hardware address */ + uint8_t m_arp_pln; /* length of protocol address */ + uint16_t m_arp_op; /* ARP opcode (command) */ + MacAddress m_arp_sha; /**< sender hardware address */ + uint32_t m_arp_sip; /**< sender IP address */ + MacAddress m_arp_tha; /**< target hardware address */ + uint32_t m_arp_tip; /**< target IP address */ +}; +#pragma pack(pop) + +#endif diff --git a/src/common/Network/Packet/MacAddress.h b/src/common/Network/Packet/MacAddress.h index 69272339..7e872fd6 100755 --- a/src/common/Network/Packet/MacAddress.h +++ b/src/common/Network/Packet/MacAddress.h @@ -19,7 +19,10 @@ limitations under the License. #include "CPktCmn.h" - +#ifndef ETHER_ADDR_LEN +#define ETHER_ADDR_LEN 6 /**< Length of Ethernet address. */ +#endif + class MacAddress { public: @@ -44,7 +47,7 @@ public: a5); }; - MacAddress(uint8_t macAddr[6]) + MacAddress(uint8_t macAddr[ETHER_ADDR_LEN]) { set(macAddr[0], macAddr[1], @@ -97,7 +100,7 @@ public: bool operator == (const MacAddress& rhs) const { - for(int i=0; i<6; i++) + for(int i = 0; i < ETHER_ADDR_LEN; i++) { if(data[i] != rhs.data[i]) return false; @@ -124,7 +127,7 @@ public: } public: - uint8_t data[6]; + uint8_t data[ETHER_ADDR_LEN]; }; #endif //_MAC_ADDRESS_H_ |