Merge "Fix for Bug 3"
[controller.git] / opendaylight / md-sal / compatibility / sal-compatibility / src / main / java / org / opendaylight / controller / sal / compatibility / adsal / DataPacketServiceAdapter.java
1 package org.opendaylight.controller.sal.compatibility.adsal;
2
3 import org.opendaylight.controller.sal.compatibility.NodeMapping;
4 import org.opendaylight.controller.sal.packet.IPluginInDataPacketService;
5 import org.opendaylight.controller.sal.packet.RawPacket;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInputBuilder;
10
11 public class DataPacketServiceAdapter implements IPluginInDataPacketService {
12
13     PacketProcessingService delegate;
14
15     @Override
16     public void transmitDataPacket(RawPacket outPkt) {
17         TransmitPacketInput packet = toTransmitPacketInput(outPkt);
18         delegate.transmitPacket(packet);
19     }
20
21     private TransmitPacketInput toTransmitPacketInput(RawPacket rawPacket) {
22         TransmitPacketInputBuilder builderTPIB = new TransmitPacketInputBuilder();
23
24         builderTPIB.setNode(NodeMapping.toNodeRef(rawPacket.getOutgoingNodeConnector().getNode()));
25
26         NodeConnectorRef egress = rawPacket.getOutgoingNodeConnector() == null ? null :
27                 NodeMapping.toNodeConnectorRef(rawPacket.getOutgoingNodeConnector());
28         NodeConnectorRef ingress = rawPacket.getIncomingNodeConnector() == null ? null :
29                 NodeMapping.toNodeConnectorRef(rawPacket.getIncomingNodeConnector());
30         byte[] payload = rawPacket.getPacketData();
31
32         builderTPIB.setEgress(egress);
33         builderTPIB.setIngress(ingress);
34         builderTPIB.setPayload(payload);
35
36         return builderTPIB.build();
37     }
38
39     public PacketProcessingService getDelegate() {
40         return delegate;
41     }
42
43     public void setDelegate(PacketProcessingService delegate) {
44         this.delegate = delegate;
45     }
46
47
48
49 }