Я пытаюсь создать систему контроля задержек, основанную на идее OpenNetMon. Что я хочу сделать, так это ввести пакет в коммутатор, чтобы этот узел переслал пакет на другой коммутатор, а этот отправил его обратно на контроллер. Наконец, контроллер измерит задержку.
Чтобы отличить этот тип тестовых пакетов для проведения измерений, я изменю поле DSCP из пакета IPv4.
Я имел в виду, что когда контроллер Opendaylight получает PacketIn, этот пакет будет скопирован, но поле DSCP изменено, а затем copy_packet/probe_packet отправит его в плоскость данных.
Я могу извлечь RawPacket, EthernetPacket, IPv4Packet из PacketChain:
RawPacket rawPacket = null;
EthernetPacket ethernetPacket = null;
Ipv4Packet ipv4Packet = null;
for (PacketChain packetChain : packetReceived.getPacketChain()) {
if (packetChain.getPacket() instanceof RawPacket) {
rawPacket = (RawPacket) packetChain.getPacket();
} else if (packetChain.getPacket() instanceof EthernetPacket) {
ethernetPacket = (EthernetPacket) packetChain.getPacket();
} else if (packetChain.getPacket() instanceof Ipv4Packet) {
ipv4Packet = (Ipv4Packet) packetChain.getPacket();
}
}
Как я могу отправить эти пакеты?