/**
* Copyright 2007-2015, Kaazing Corporation. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kaazing.k3po.pcap.converter.internal.utils;
import org.kaazing.k3po.pcap.converter.internal.packet.Packet;
public class PacketUtil {
public static Packet createBasicPacket(String destIp, String srcIp, int destPort, int srcPort) {
Packet pc = new Packet();
pc.setDestIpAddr(destIp);
pc.setSrcIpAddr(srcIp);
pc.setTcpDestPort(destPort);
pc.setTcpSrcPort(srcPort);
return pc;
}
public static Packet createBasicTcpPacket(String destIp, String srcIp, int destPort, int srcPort) {
Packet pc = new Packet();
pc.setDestIpAddr(destIp);
pc.setSrcIpAddr(srcIp);
pc.setTcpDestPort(destPort);
pc.setTcpSrcPort(srcPort);
pc.setTcp(true);
return pc;
}
public static Packet getTcpAckPacket(String destIp, String srcIp, int destPort, int srcPort) {
Packet pc = createBasicTcpPacket(destIp, srcIp, destPort, srcPort);
pc.setTcpFlagsAck(true);
return pc;
}
public static Packet getTcpAckPacket(String destIp, String srcIp, int destPort, int srcPort, long seqNum, long ackNum) {
Packet pc = createBasicTcpPacket(destIp, srcIp, destPort, srcPort);
pc.setTcpFlagsAck(true);
pc.setTcpSequenceNumber(seqNum);
pc.setTcpAcknowledgementNumber(ackNum);
return pc;
}
public static Packet getTcpSynAckPacket(String clientIp, String serverIp, int clientPort, int serverPort) {
Packet pc = getTcpAckPacket(clientIp, serverIp, clientPort, serverPort);
pc.setTcpFlagsSyn(true);
return pc;
}
public static Packet getTcpFinPacket(String destIp, String srcIp, int destPort, int srcPort, long seqNum, long ackNum){
Packet pc = createBasicTcpPacket(destIp, srcIp, destPort, srcPort);
pc.setTcpFlagsFin(true);
pc.setTcpSequenceNumber(seqNum);
pc.setTcpAcknowledgementNumber(ackNum);
return pc;
}
public static Packet getTcpFinAckPacket(String destIp, String srcIp, int destPort, int srcPort, long seqNum, long ackNum){
Packet pc = createBasicTcpPacket(destIp, srcIp, destPort, srcPort);
pc.setTcpFlagsFin(true);
pc.setTcpFlagsAck(true);
pc.setTcpSequenceNumber(seqNum);
pc.setTcpAcknowledgementNumber(ackNum);
return pc;
}
public static Packet getTcpPayloadPacket(String destIp, String srcIp, int destPort, int srcPort, byte[] payload){
Packet pc = createBasicTcpPacket(destIp, srcIp, destPort, srcPort);
pc.setTcpPayloadLength(payload.length);
pc.setTcpPayload(payload);
return pc;
}
}