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 | |