etherpkt.cc (11263:8dcc6b40f164) etherpkt.cc (11290:1640dd68b0a4)
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 39 unchanged lines hidden (view full) ---

48void
49EthPacketData::unserialize(const string &base, CheckpointIn &cp)
50{
51 paramIn(cp, base + ".length", length);
52 if (length)
53 arrayParamIn(cp, base + ".data", data, length);
54}
55
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 39 unchanged lines hidden (view full) ---

48void
49EthPacketData::unserialize(const string &base, CheckpointIn &cp)
50{
51 paramIn(cp, base + ".length", length);
52 if (length)
53 arrayParamIn(cp, base + ".data", data, length);
54}
55
56void
57EthPacketData::packAddress(uint8_t *src_addr,
58 uint8_t *dst_addr,
59 unsigned &nbytes)
60{
61 Net::EthHdr *hdr = (Net::EthHdr *)data;
62 assert(hdr->src().size() == hdr->dst().size());
63 if (nbytes < hdr->src().size())
64 panic("EthPacketData::packAddress() Buffer overflow");
65
66 memcpy(dst_addr, hdr->dst().bytes(), hdr->dst().size());
67 memcpy(src_addr, hdr->src().bytes(), hdr->src().size());
68
69 nbytes = hdr->src().size();
70}
71