当前位置: 首页>>代码示例>>Java>>正文


Java PortChangeType类代码示例

本文整理汇总了Java中net.floodlightcontroller.core.IOFSwitch.PortChangeType的典型用法代码示例。如果您正苦于以下问题:Java PortChangeType类的具体用法?Java PortChangeType怎么用?Java PortChangeType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PortChangeType类属于net.floodlightcontroller.core.IOFSwitch包,在下文中一共展示了PortChangeType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: switchPortsChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
/**
 * Called when ports on the given switch have changed. Writes the
 * updated switch to the sync store and queues a switch notification
 * to listeners
 * @param sw
 */
public synchronized void switchPortsChanged(IOFSwitch sw,
                                            ImmutablePort port,
                                            PortChangeType type) {
    if (role != Role.MASTER) {
        counters.invalidPortsChanged.updateCounterWithFlush();
        return;
    }
    if (!this.activeSwitches.containsKey(sw.getId())) {
        counters.invalidPortsChanged.updateCounterWithFlush();
        return;
    }
    // update switch in store
    addSwitchToStore(sw);
    // no need to count here. SwitchUpdate.dispatch will count
    // the portchanged
    SwitchUpdate update = new SwitchUpdate(sw.getId(),
                                           SwitchUpdateType.PORTCHANGED,
                                           port, type);
    addUpdateToQueue(update);
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:27,代码来源:Controller.java

示例2: SwitchUpdate

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
public SwitchUpdate(long swId,
                    SwitchUpdateType switchUpdateType,
                    ImmutablePort port,
                    PortChangeType changeType) {
    if (switchUpdateType == SwitchUpdateType.PORTCHANGED) {
        if (port == null) {
            throw new NullPointerException("Port must not be null " +
                    "for PORTCHANGED updates");
        }
        if (changeType == null) {
            throw new NullPointerException("ChangeType must not be " +
                    "null for PORTCHANGED updates");
        }
    } else {
        if (port != null || changeType != null) {
            throw new IllegalArgumentException("port and changeType " +
                    "must be null for " + switchUpdateType +
                    " updates");
        }
    }
    this.swId = swId;
    this.switchUpdateType = switchUpdateType;
    this.port = port;
    this.changeType = changeType;
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:26,代码来源:Controller.java

示例3: switchPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
@Override
public void switchPortChanged(long swId, OFPortDesc port,
        PortChangeType changeType) {
    switch (changeType) {
    case ADD:
        switchPortAdded(swId, port);
        break;
    case DELETE:
        switchPortRemoved(swId, port);
        break;
    case UP:
        // NOTE: Currently, we treat Port UP/DOWN same as Port ADD/DELETE
        switchPortAdded(swId, port);
        break;
    case DOWN:
        // NOTE: Currently, we treat Port UP/DOWN same as Port ADD/DELETE
        switchPortRemoved(swId, port);
        break;
    case OTHER_UPDATE:
    default:
        // XXX S what is the right set of port change handlers?
        log.debug("Topology publisher does not handle these port updates: {}",
                    changeType);
    }
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:26,代码来源:TopologyPublisher.java

示例4: SwitchUpdate

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
public SwitchUpdate(long swId,
        SwitchUpdateType switchUpdateType,
        OFPortDesc port,
        PortChangeType changeType) {
    if (switchUpdateType == SwitchUpdateType.PORTCHANGED) {
        if (port == null) {
            throw new NullPointerException("Port must not be null " +
                    "for PORTCHANGED updates");
        }
        if (changeType == null) {
            throw new NullPointerException("ChangeType must not be " +
                    "null for PORTCHANGED updates");
        }
    } else {
        if (port != null || changeType != null) {
            throw new IllegalArgumentException("port and changeType " +
                    "must be null for " + switchUpdateType +
                    " updates");
        }
    }
    this.swId = swId;
    this.switchUpdateType = switchUpdateType;
    this.port = port;
    this.changeType = changeType;
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:26,代码来源:Controller.java

示例5: notifyPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
/**
 * Indicates that ports on the given switch have changed. Enqueue a switch
 * update.
 *
 * @param sw
 */
protected void notifyPortChanged(long dpid, OFPortDesc port,
        PortChangeType changeType) {
    if (port == null || changeType == null) {
        String msg = String.format("Switch port or changeType must not "
                + "be null in port change notification");
        throw new NullPointerException(msg);
    }
    if (connectedSwitches.get(dpid) == null || getSwitch(dpid) == null) {
        log.warn("Port change update on switch {} not connected or activated "
                + "... Aborting.", HexString.toHexString(dpid));
        return;
    }

    SwitchUpdate update = new SwitchUpdate(dpid, SwitchUpdateType.PORTCHANGED,
            port, changeType);
    addUpdateToQueue(update);
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:24,代码来源:Controller.java

示例6: testNotifyPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
/**
 * Test the method to notify the controller of a port change.
 * The controller should send out an update to the switch listeners.
 *
 * @throws InterruptedException
 */
@Test
public void testNotifyPortChanged() throws InterruptedException {
    long dpid = 1L;

    // No difference between OpenFlow versions here
    OFVersion version = OFVersion.OF_10;
    IOFSwitch sw = createMockSwitch(dpid, version);
    OFPortDesc port = OFFactories.getFactory(version).buildPortDesc()
            .setName("myPortName1")
            .setPortNo(OFPort.of(42))
            .build();

    replay(sw);

    controller.connectedSwitches.put(1L, new OFChannelHandler(controller));
    controller.activeMasterSwitches.put(1L, sw);

    doTestNotifyPortChanged(dpid, port, PortChangeType.ADD);
    doTestNotifyPortChanged(dpid, port, PortChangeType.OTHER_UPDATE);
    doTestNotifyPortChanged(dpid, port, PortChangeType.DELETE);
    doTestNotifyPortChanged(dpid, port, PortChangeType.UP);
    doTestNotifyPortChanged(dpid, port, PortChangeType.DOWN);

}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:31,代码来源:ControllerTest.java

示例7: switchPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
@Override
public void switchPortChanged(long switchId, ImmutablePort port,
                              PortChangeType type) {
    String msg = String.format("Switch %s port %s changed: %s",
                               HexString.toHexString(switchId),
                               port.getName(),
                               type.toString());
    notifier.postNotification(msg);
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:10,代码来源:Controller.java

示例8: switchPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
@Override
public void switchPortChanged(long switchId, ImmutablePort port,
		PortChangeType type) {
	switch (type) {
	case DELETE:
	case DOWN:
		this.handlePortDown(switchId, port);
		break;
	default:
		break;
	}

}
 
开发者ID:xuraylei,项目名称:floodlight_with_topoguard,代码行数:14,代码来源:TopoloyUpdateChecker.java

示例9: doTestUpdateQueueWithPortUpdate

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
private void doTestUpdateQueueWithPortUpdate(long dpid, OFPortDesc port,
        PortChangeType type,
        DummySwitchListener listener) throws InterruptedException {
    controller.updates.put(controller.new SwitchUpdate(dpid,
            SwitchUpdateType.PORTCHANGED, port, type));
    synchronized (listener) {
        listener.wait(500);
    }
    // Test that the update was seen by the listener 1 time
    assertEquals(1, listener.getPortUpdateCount(type));
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:12,代码来源:ControllerTest.java

示例10: doTestNotifyPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
private void doTestNotifyPortChanged(long dpid, OFPortDesc port,
        PortChangeType changeType) throws InterruptedException {
    controller.notifyPortChanged(dpid, port, changeType);

    assertEquals(1, controller.updates.size());
    IUpdate update = controller.updates.take();
    assertEquals(true, update instanceof SwitchUpdate);
    SwitchUpdate swUpdate = (SwitchUpdate) update;
    assertEquals(dpid, swUpdate.getSwId());
    assertEquals(SwitchUpdateType.PORTCHANGED, swUpdate.getSwitchUpdateType());
    assertEquals(changeType, swUpdate.getPortChangeType());
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:13,代码来源:ControllerTest.java

示例11: testNotifySwitchPoArtChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
/**
 * Test that notifyPortChanged() results in an IOFSwitchListener
 * update and that its arguments are passed through to
 * the listener call
 */
@Test
public void testNotifySwitchPoArtChanged() throws Exception {
    long dpid = 42L;

    OFFeaturesReply fr1 = createOFFeaturesReply();
    fr1.setDatapathId(dpid);
    OFPhysicalPort p1 = createOFPhysicalPort("Port1", 1);
    fr1.setPorts(Collections.singletonList(p1));

    OFFeaturesReply fr2 = createOFFeaturesReply();
    fr1.setDatapathId(dpid);
    OFPhysicalPort p2 = createOFPhysicalPort("Port1", 1);
    p2.setAdvertisedFeatures(0x2); // just some bogus values
    fr2.setPorts(Collections.singletonList(p2));

    OFDescriptionStatistics desc = createOFDescriptionStatistics();

    // activate switch
    IOFSwitch sw = doActivateNewSwitch(dpid, desc, fr1);

    // check the store
    SwitchSyncRepresentation ssr = storeClient.getValue(dpid);
    assertNotNull(ssr);
    assertEquals(dpid, ssr.getDpid());
    assertEquals(1, ssr.getPorts().size());
    assertEquals(p1, ssr.getPorts().get(0).toOFPhysicalPort());

    IOFSwitchListener listener = createMock(IOFSwitchListener.class);
    controller.addOFSwitchListener(listener);
    // setup switch with the new, second features reply (and thus ports)
    setupSwitchForAddSwitch(sw, dpid, desc, fr2);
    listener.switchPortChanged(dpid, ImmutablePort.fromOFPhysicalPort(p2),
                               PortChangeType.OTHER_UPDATE);
    expectLastCall().once();
    replay(listener);
    replay(sw);
    controller.notifyPortChanged(sw, ImmutablePort.fromOFPhysicalPort(p2),
                                 PortChangeType.OTHER_UPDATE);
    controller.processUpdateQueueForTesting();
    verify(listener);
    verify(sw);

    // check the store
    ssr = storeClient.getValue(dpid);
    assertNotNull(ssr);
    assertEquals(dpid, ssr.getDpid());
    assertEquals(1, ssr.getPorts().size());
    assertEquals(p2, ssr.getPorts().get(0).toOFPhysicalPort());
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:55,代码来源:ControllerTest.java

示例12: testPortStatusMessageMaster

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
/**
 * Test port status message handling while MASTER
 *
 */
@Test
public void testPortStatusMessageMaster() throws Exception {
    long dpid = featuresReply.getDatapathId();
    testInitialMoveToMasterWithRole();

    OFPhysicalPort p = new OFPhysicalPort();
    p.setName("Port1");
    p.setPortNumber((short)1);
    OFPortStatus ps = (OFPortStatus)
            BasicFactory.getInstance().getMessage(OFType.PORT_STATUS);
    ps.setDesc(p);

    // The events we expect sw.handlePortStatus to return
    // We'll just use the same list for all valid OFPortReasons and add
    // arbitrary events for arbitrary ports that are not necessarily
    // related to the port status message. Our goal
    // here is not to return the correct set of events but the make sure
    // that a) sw.handlePortStatus is called
    //      b) the list of events sw.handlePortStatus returns is sent
    //         as IOFSwitchListener notifications.
    OrderedCollection<PortChangeEvent> events =
            new LinkedHashSetWrapper<PortChangeEvent>();
    ImmutablePort p1 = ImmutablePort.create("eth1", (short)1);
    ImmutablePort p2 = ImmutablePort.create("eth2", (short)2);
    ImmutablePort p3 = ImmutablePort.create("eth3", (short)3);
    ImmutablePort p4 = ImmutablePort.create("eth4", (short)4);
    ImmutablePort p5 = ImmutablePort.create("eth5", (short)5);
    events.add(new PortChangeEvent(p1, PortChangeType.ADD));
    events.add(new PortChangeEvent(p2, PortChangeType.DELETE));
    events.add(new PortChangeEvent(p3, PortChangeType.UP));
    events.add(new PortChangeEvent(p4, PortChangeType.DOWN));
    events.add(new PortChangeEvent(p5, PortChangeType.OTHER_UPDATE));


    for (OFPortReason reason: OFPortReason.values()) {
        ps.setReason(reason.getReasonCode());

        reset(sw);
        expect(sw.inputThrottled(anyObject(OFMessage.class)))
                .andReturn(false).anyTimes();
        expect(sw.getId()).andReturn(dpid).anyTimes();

        expect(sw.processOFPortStatus(ps)).andReturn(events).once();
        replay(sw);

        reset(controller);
        controller.notifyPortChanged(sw, p1, PortChangeType.ADD);
        controller.notifyPortChanged(sw, p2, PortChangeType.DELETE);
        controller.notifyPortChanged(sw, p3, PortChangeType.UP);
        controller.notifyPortChanged(sw, p4, PortChangeType.DOWN);
        controller.notifyPortChanged(sw, p5, PortChangeType.OTHER_UPDATE);
        sendMessageToHandlerNoControllerReset(
               Collections.<OFMessage>singletonList(ps));
        verify(sw);
        verify(controller);
    }
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:62,代码来源:OFChannelHandlerTest.java

示例13: switchPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
@Override
public void switchPortChanged(long switchId, ImmutablePort port,
		PortChangeType type) {
	// TODO Auto-generated method stub
	flag=true;color = decideSWColor();setDefaultRules();
}
 
开发者ID:shao-you,项目名称:SDN-Traceroute,代码行数:7,代码来源:Traceroute.java

示例14: switchPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
@Override
public void switchPortChanged(long swId, OFPortDesc port, PortChangeType changeType) {
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:4,代码来源:DefaultRules.java

示例15: switchPortChanged

import net.floodlightcontroller.core.IOFSwitch.PortChangeType; //导入依赖的package包/类
@Override
public void switchPortChanged(long swId, OFPortDesc port,
        PortChangeType changeType) {
    // TODO Auto-generated method stub

}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:7,代码来源:LinkDiscoveryManager.java


注:本文中的net.floodlightcontroller.core.IOFSwitch.PortChangeType类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。