+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.protocol_plugins.stub.internal;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.opendaylight.controller.sal.action.Action;
-import org.opendaylight.controller.sal.action.Controller;
-import org.opendaylight.controller.sal.action.Drop;
-import org.opendaylight.controller.sal.action.Flood;
-import org.opendaylight.controller.sal.action.FloodAll;
-import org.opendaylight.controller.sal.action.HwPath;
-import org.opendaylight.controller.sal.action.Loopback;
-import org.opendaylight.controller.sal.action.Output;
-import org.opendaylight.controller.sal.action.PopVlan;
-import org.opendaylight.controller.sal.action.PushVlan;
-import org.opendaylight.controller.sal.action.SetDlDst;
-import org.opendaylight.controller.sal.action.SetDlSrc;
-import org.opendaylight.controller.sal.action.SetDlType;
-import org.opendaylight.controller.sal.action.SetNwDst;
-import org.opendaylight.controller.sal.action.SetNwSrc;
-import org.opendaylight.controller.sal.action.SetNwTos;
-import org.opendaylight.controller.sal.action.SetTpDst;
-import org.opendaylight.controller.sal.action.SetTpSrc;
-import org.opendaylight.controller.sal.action.SetVlanCfi;
-import org.opendaylight.controller.sal.action.SetVlanId;
-import org.opendaylight.controller.sal.action.SetVlanPcp;
-import org.opendaylight.controller.sal.action.SwPath;
-import org.opendaylight.controller.sal.core.ConstructionException;
-import org.opendaylight.controller.sal.core.Node;
-import org.opendaylight.controller.sal.core.NodeConnector;
-import org.opendaylight.controller.sal.core.NodeTable;
-import org.opendaylight.controller.sal.flowprogrammer.Flow;
-import org.opendaylight.controller.sal.match.Match;
-import org.opendaylight.controller.sal.match.MatchType;
-import org.opendaylight.controller.sal.reader.FlowOnNode;
-import org.opendaylight.controller.sal.reader.IPluginInReadService;
-import org.opendaylight.controller.sal.reader.NodeConnectorStatistics;
-import org.opendaylight.controller.sal.reader.NodeDescription;
-import org.opendaylight.controller.sal.reader.NodeTableStatistics;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-/**
- * Stub Implementation for IPluginInReadService used by SAL
- *
- *
- */
-public class ReadService implements IPluginInReadService {
- private static final Logger logger = LoggerFactory
- .getLogger(ReadService.class);
-
- /**
- * Function called by the dependency manager when all the required
- * dependencies are satisfied
- *
- */
- void init() {
- }
-
- /**
- * Function called by the dependency manager when at least one dependency
- * become unsatisfied or when the component is shutting down because for
- * example bundle is being stopped.
- *
- */
- void destroy() {
- }
-
- /**
- * Function called by dependency manager after "init ()" is called and after
- * the services provided by the class are registered in the service registry
- *
- */
- void start() {
- }
-
- /**
- * Function called by the dependency manager before the services exported by
- * the component are unregistered, this will be followed by a "destroy ()"
- * calls
- *
- */
- void stop() {
- }
-
- @Override
- public FlowOnNode readFlow(Node node, Flow flow, boolean cached) {
- FlowOnNode fn1 = new FlowOnNode(flow);
- fn1.setByteCount(100);
- fn1.setDurationNanoseconds(400);
- fn1.setDurationSeconds(40);
- fn1.setTableId((byte) 0x1);
- fn1.setPacketCount(200);
- return fn1;
- }
-
- @Override
- public List<FlowOnNode> readAllFlow(Node node, boolean cached) {
-
- ArrayList<FlowOnNode> list = new ArrayList<FlowOnNode>();
- ArrayList<Action> actionList = new ArrayList<Action>();
- actionList.add(new Drop()); //IT assumes this is first element
- actionList.add(new Loopback());
- actionList.add(new Flood());
- actionList.add(new FloodAll());
- actionList.add(new Controller());
- actionList.add(new SwPath());
- actionList.add(new HwPath());
- try {
- actionList.add(new Output(new NodeConnector("STUB", 0xCAFE, node)));
- } catch (ConstructionException e) {
-
- }
- byte dst[] = { (byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5 };
- byte src[] = { (byte) 5, (byte) 4, (byte) 3, (byte) 2, (byte) 1 };
- actionList.add(new SetDlSrc(src));
- actionList.add(new SetDlDst(dst));
- actionList.add(new SetDlType(10));
-
- actionList.add(new SetVlanId(2));
- actionList.add(new SetVlanPcp(3));
- actionList.add(new SetVlanCfi(1));
-
- actionList.add(new PopVlan());
- actionList.add(new PushVlan(0x8100, 1, 1, 1234));
-
- try {
- actionList.add(new SetNwSrc(InetAddress.getByName("2.2.2.2")));
- actionList.add(new SetNwDst(InetAddress.getByName("1.1.1.1")));
- } catch (UnknownHostException e) {
-
- }
- actionList.add(new SetNwTos(0x10));
- actionList.add(new SetTpSrc(4201));
- actionList.add(new SetTpDst(8080));
-
- short priority = 3500; //IT assumes this value
- for (Action a : actionList) {
- Flow flow = new Flow();
- Match match = new Match();
- try {
- match.setField(MatchType.NW_DST,
- InetAddress.getByName("1.1.1.1"));
- } catch (UnknownHostException e) {
-
- }
- flow.setMatch(match);
- List<Action> actions = new ArrayList<Action>();
- actions.add(a);
- flow.setActions(actions);
- flow.setPriority(priority++);
- flow.setIdleTimeout((short) 1000);
- flow.setHardTimeout((short) 2000);
- flow.setId(12345);
-
- FlowOnNode fn1 = new FlowOnNode(flow);
- fn1.setByteCount(100);
- fn1.setDurationNanoseconds(400);
- fn1.setDurationSeconds(40);
- fn1.setTableId((byte) 0x1);
- fn1.setPacketCount(200);
-
- list.add(fn1);
- }
- return list;
- }
-
- @Override
- public NodeDescription readDescription(Node node, boolean cached) {
- NodeDescription desc = new NodeDescription();
- desc.setDescription("This is a sample node description");
- desc.setHardware("stub hardware");
- desc.setSoftware("stub software");
- desc.setSerialNumber("123");
- desc.setManufacturer("opendaylight");
- return desc;
- }
-
- @Override
- public NodeConnectorStatistics readNodeConnector(NodeConnector connector,
- boolean cached) {
- NodeConnectorStatistics stats = new NodeConnectorStatistics();
- stats.setNodeConnector(connector);
- stats.setCollisionCount(4);
- stats.setReceiveByteCount(1000);
- stats.setReceiveCRCErrorCount(1);
- stats.setReceiveDropCount(2);
- stats.setReceiveErrorCount(3);
- stats.setReceiveFrameErrorCount(5);
- stats.setReceiveOverRunErrorCount(6);
- stats.setReceivePacketCount(250);
- stats.setTransmitByteCount(5000);
- stats.setTransmitDropCount(50);
- stats.setTransmitErrorCount(10);
- stats.setTransmitPacketCount(500);
-
- return stats;
- }
-
- @Override
- public List<NodeConnectorStatistics> readAllNodeConnector(Node node,
- boolean cached) {
- NodeConnectorStatistics stats = new NodeConnectorStatistics();
- try {
- NodeConnector nc = new NodeConnector("STUB", 0xCAFE, node);
- stats.setNodeConnector(nc);
- } catch (ConstructionException e) {
- // couldn't create nodeconnector.
- }
- stats.setCollisionCount(4);
- stats.setReceiveByteCount(1000);
- stats.setReceiveCRCErrorCount(1);
- stats.setReceiveDropCount(2);
- stats.setReceiveErrorCount(3);
- stats.setReceiveFrameErrorCount(5);
- stats.setReceiveOverRunErrorCount(6);
- stats.setReceivePacketCount(250);
- stats.setTransmitByteCount(5000);
- stats.setTransmitDropCount(50);
- stats.setTransmitErrorCount(10);
- stats.setTransmitPacketCount(500);
-
- List<NodeConnectorStatistics> result = new ArrayList<NodeConnectorStatistics>();
- result.add(stats);
- return result;
- }
-
- @Override
- public long getTransmitRate(NodeConnector connector) {
- return 100;
- }
-
- @Override
- public NodeTableStatistics readNodeTable(NodeTable table, boolean b) {
- NodeTableStatistics stats = new NodeTableStatistics();
- stats.setNodeTable(table);
- stats.setActiveCount(4);
- stats.setLookupCount(4);
- stats.setMatchedCount(4);
-
- return stats;
- }
-
- @Override
- public List<NodeTableStatistics> readAllNodeTable(Node node, boolean cached) {
- NodeTableStatistics stats = new NodeTableStatistics();
- try {
- NodeTable nt = new NodeTable(NodeTable.NodeTableIDType.OPENFLOW, Byte.valueOf("10"), node);
- stats.setNodeTable(nt);
- } catch (ConstructionException e) {
- // couldn't create nodetable.
- }
-
- stats.setActiveCount(4);
- stats.setLookupCount(4);
- stats.setMatchedCount(4);
-
- List<NodeTableStatistics> result = new ArrayList<NodeTableStatistics>();
- result.add(stats);
- return result;
- }
-}