shill: LinkMonitor: Add ArpPacket code
Add ArpPacket class to parse and compose ARP packets.
BUG=chromium-os:32600
TEST=New unit tests
Change-Id: Icac65cc16e059f07109fc695ba9046cafa0b042c
Reviewed-on: https://gerrit.chromium.org/gerrit/28096
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/byte_string.cc b/byte_string.cc
index f182756..fae4953 100644
--- a/byte_string.cc
+++ b/byte_string.cc
@@ -12,6 +12,16 @@
namespace shill {
+ByteString ByteString::GetSubstring(size_t offset, size_t length) const {
+ if (offset > GetLength()) {
+ offset = GetLength();
+ }
+ if (length > GetLength() - offset) {
+ length = GetLength() - offset;
+ }
+ return ByteString(GetConstData() + offset, length);
+}
+
// static
ByteString ByteString::CreateFromCPUUInt32(uint32 val) {
return ByteString(reinterpret_cast<unsigned char *>(&val), sizeof(val));