| /******************************************************************************* |
| * Copyright (c) 2018, 2019 Ericsson |
| * |
| * All rights reserved. This program and the accompanying materials are |
| * made available under the terms of the Eclipse Public License 2.0 which |
| * accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Viet-Hung Phan - Initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.tracecompass.internal.pcap.core.protocol.pcap; |
| |
| import java.nio.ByteBuffer; |
| |
| import org.eclipse.tracecompass.internal.pcap.core.packet.BadPacketException; |
| import org.eclipse.tracecompass.internal.pcap.core.trace.PcapNgFile; |
| |
| /** |
| * Class that represents a PcapNg packet. This is the highest level of |
| * encapsulation. This class will serve a pcapNg packet as receive and store the |
| * necessary packet attributes |
| */ |
| public class PcapNgPacket extends PcapPacket { |
| |
| private final PcapNgInterface fInterface; |
| |
| /** |
| * Constructor of the PcapNg Packet class. |
| * |
| * @param file |
| * The file that contains this packet. |
| * @param interfaceDesc |
| * interface description |
| * @param timestamp |
| * timestamp in nanoseconds |
| * @param originalLength |
| * original length |
| * @param packetData |
| * packet data |
| * @throws BadPacketException |
| * Thrown when the Packet is erroneous. |
| */ |
| public PcapNgPacket(PcapNgFile file, PcapNgInterface interfaceDesc, long timestamp, int originalLength, ByteBuffer packetData) throws BadPacketException { |
| super(file); |
| fInterface = interfaceDesc; |
| setTimeStamp(timestamp); |
| setIncludedLength(packetData.limit()); |
| setOriginalLength(originalLength); |
| setPayload(packetData); |
| setChildPacket(findChildPacket()); |
| } |
| |
| @Override |
| public PcapNgFile getPcapFile() { |
| return (PcapNgFile) super.getPcapFile(); |
| } |
| |
| @Override |
| public long getDataLinkType() { |
| return fInterface.getLinkType(); |
| } |
| } |