2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.l2switch.packet;
11 import org.opendaylight.l2switch.flow.FlowWriterService;
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.arp.rev140528.ArpPacketListener;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.arp.rev140528.ArpPacketOverEthernetReceived;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.ipv4.rev140528.Ipv4PacketListener;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.ipv4.rev140528.Ipv4PacketOverEthernetReceived;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.*;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
26 * PacketDispatcher sends packets out to the network.
28 public class PacketDispatcher {
30 private final static Logger _logger = LoggerFactory.getLogger(PacketDispatcher.class);
31 private PacketProcessingService packetProcessingService;
32 private FlowWriterService flowWriterService;
34 public void setPacketProcessingService(PacketProcessingService packetProcessingService) {
35 this.packetProcessingService = packetProcessingService;
38 public void setFlowWriterService(FlowWriterService flowWriterService) {
39 this.flowWriterService = flowWriterService;
43 * Sends the specified packet on the specified port.
44 * @param payload The payload to be sent.
45 * @param ingress The NodeConnector where the payload came from.
46 * @param egress The NodeConnector where the payload will go.
48 private void sendPacketOut(byte[] payload, NodeConnectorRef ingress, NodeConnectorRef egress) {
49 if (ingress == null || egress == null) return;
50 /*InstanceIdentifier<Node> egressNodePath = InstanceIdentifierUtils.getNodePath(egress.getValue());
51 TransmitPacketInput input = new TransmitPacketInputBuilder() //
52 .setPayload(payload) //
53 .setNode(new NodeRef(egressNodePath)) //
55 .setIngress(ingress) //
57 packetProcessingService.transmitPacket(input);*/