blob: ad6f1cd9220972baa998854633d382c508fd74c0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 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:
* Vincent Perot - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.internal.pcap.core.util;
import org.eclipse.tracecompass.internal.pcap.core.protocol.PcapProtocol;
// TODO finish this
// TODO maybe match it to protocol instead of string.
/**
* Helper that is used to help mapping a certain protocol number to a particular
* protocol (i.e. TCP). This is used when finding the child packet of an IPv4
* packet, for instance.
*
* See http://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
*
* @author Vincent Perot
*/
public final class IPProtocolNumberHelper {
/** Protocol Number ICMP */
public static final int PROTOCOL_NUMBER_ICMP = 1;
/** Protocol Number IGMP */
public static final int PROTOCOL_NUMBER_IGMP = 2;
/** Protocol Number TCP */
public static final int PROTOCOL_NUMBER_TCP = 6;
/** Protocol Number UDP */
public static final int PROTOCOL_NUMBER_UDP = 17;
/** Protocol Number Encapsulated IPv6 */
public static final int PROTOCOL_NUMBER_ENCAP_IPV6 = 41;
/** Protocol Number OSPF */
public static final int PROTOCOL_NUMBER_OSPF = 89;
/** Protocol Number SCTP */
public static final int PROTOCOL_NUMBER_SCTP = 132;
private IPProtocolNumberHelper() {}
/**
* Method that match the protocol number to a protocol as a string.
*
* @param protocolNumber
* The protocol number as an int.
* @return The protocol as a string.
*/
public static String toString(int protocolNumber) {
switch (protocolNumber) {
case PROTOCOL_NUMBER_ICMP:
return "ICMP"; //$NON-NLS-1$
case PROTOCOL_NUMBER_IGMP:
return "IGMP"; //$NON-NLS-1$
case PROTOCOL_NUMBER_TCP:
return PcapProtocol.TCP.getName();
case PROTOCOL_NUMBER_UDP:
return PcapProtocol.UDP.getName();
case PROTOCOL_NUMBER_ENCAP_IPV6:
return "IPv6"; //$NON-NLS-1$
case PROTOCOL_NUMBER_OSPF:
return "OSPF"; //$NON-NLS-1$
case PROTOCOL_NUMBER_SCTP:
return "SCTP"; //$NON-NLS-1$
default:
return "Unknown"; //$NON-NLS-1$
}
}
}