summaryrefslogtreecommitdiffstats
path: root/src/common/Network
diff options
context:
space:
mode:
authorIdo Barnea <ibarnea@cisco.com>2016-09-26 16:26:37 +0300
committerIdo Barnea <ibarnea@cisco.com>2016-10-05 10:45:28 +0300
commit2223955b8eb3b378c1ab79e3735ed340852b04b9 (patch)
tree334b533001dd013a5e5293f61b835341fdf1f300 /src/common/Network
parenta42bf7bc43e78e63c266c22cccf15ce3f4cab297 (diff)
pre test: Some small fixes
Diffstat (limited to 'src/common/Network')
-rw-r--r--src/common/Network/Packet/Arp.h46
-rwxr-xr-xsrc/common/Network/Packet/MacAddress.h11
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_