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


Java IOFSwitch.getPorts方法代码示例

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


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

示例1: switchActivated

import net.floodlightcontroller.core.IOFSwitch; //导入方法依赖的package包/类
@Override
public void switchActivated(DatapathId switchId) {
	IOFSwitch sw = switchService.getSwitch(switchId);
	if (sw == null) {
		log.warn("Switch {} was activated but had no switch object in the switch service. Perhaps it quickly disconnected", switchId);
		return;
	}
	if (OFDPAUtils.isOFDPASwitch(sw)) {
		sw.write(sw.getOFFactory().buildFlowDelete()
				.setTableId(TableId.ALL)
				.build()
				);
		sw.write(sw.getOFFactory().buildGroupDelete()
				.setGroup(OFGroup.ANY)
				.setGroupType(OFGroupType.ALL)
				.build()
				);
		sw.write(sw.getOFFactory().buildGroupDelete()
				.setGroup(OFGroup.ANY)
				.setGroupType(OFGroupType.INDIRECT)
				.build()
				);
		sw.write(sw.getOFFactory().buildBarrierRequest().build());
		
		List<OFPortModeTuple> portModes = new ArrayList<OFPortModeTuple>();
		for (OFPortDesc p : sw.getPorts()) {
			portModes.add(OFPortModeTuple.of(p.getPortNo(), OFPortMode.ACCESS));
		}
		if (log.isWarnEnabled()) {
			log.warn("For OF-DPA switch {}, initializing VLAN {} on ports {}", new Object[] { switchId, VlanVid.ZERO, portModes});
		}
		OFDPAUtils.addLearningSwitchPrereqs(sw, VlanVid.ZERO, portModes);
	}
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:35,代码来源:Forwarding.java

示例2: switchAdded

import net.floodlightcontroller.core.IOFSwitch; //导入方法依赖的package包/类
@Override
public void switchAdded(DatapathId dpid) {
	/* Insert static flows on all ports of the switch to redirect
	 * DHCP client --> DHCP DHCPServer traffic to the controller.
	 * DHCP client's operate on UDP port 67
	 */
	IOFSwitch sw = switchService.getSwitch(dpid);
	
	//fix concurrency flaw
	if (sw == null){
		return;
	}
	
	OFFlowAdd.Builder flow = sw.getOFFactory().buildFlowAdd();
	Match.Builder match = sw.getOFFactory().buildMatch();
	ArrayList<OFAction> actionList = new ArrayList<OFAction>();
	OFActionOutput.Builder action = sw.getOFFactory().actions().buildOutput();
	for (OFPortDesc port : sw.getPorts()) {
		match.setExact(MatchField.IN_PORT, port.getPortNo());
		match.setExact(MatchField.ETH_TYPE, EthType.IPv4);
		match.setExact(MatchField.IP_PROTO, IpProtocol.UDP);
		match.setExact(MatchField.UDP_SRC, UDP.DHCP_CLIENT_PORT);
		action.setMaxLen(0xffFFffFF);
		action.setPort(OFPort.CONTROLLER);
		actionList.add(action.build());
		
		flow.setBufferId(OFBufferId.NO_BUFFER);
		flow.setHardTimeout(0);
		flow.setIdleTimeout(0);
		flow.setOutPort(OFPort.CONTROLLER);
		flow.setActions(actionList);
		flow.setMatch(match.build());
		flow.setPriority(32767);
		sfp.addFlow("dhcp-port---" + port.getPortNo().getPortNumber() + "---(" + port.getName() + ")", flow.build(), sw.getId());
	}		
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:37,代码来源:DHCPSwitchFlowSetter.java

示例3: floodArpRequest

import net.floodlightcontroller.core.IOFSwitch; //导入方法依赖的package包/类
private void floodArpRequest(IOFSwitch sw, IPv4Address requestedAddress) {
	IPacket arpRequest = new Ethernet()
	.setSourceMACAddress("00:00:00:00:00:01")
	.setDestinationMACAddress("ff:ff:ff:ff:ff:ff")
	.setEtherType(EthType.ARP)
	.setVlanID((short) 0)
	.setPriorityCode((byte) 0)
	.setPayload(
			new ARP()
			.setHardwareType(ARP.HW_TYPE_ETHERNET)
			.setProtocolType(ARP.PROTO_TYPE_IP)
			.setHardwareAddressLength((byte) 6)
			.setProtocolAddressLength((byte) 4)
			.setOpCode(ARP.OP_REQUEST)
			.setSenderHardwareAddress(HexString.fromHexString("00:00:00:00:00:01"))
			.setSenderProtocolAddress(IPv4.toIPv4AddressBytes("10.0.0.111"))
			.setTargetHardwareAddress(HexString.fromHexString("00:00:00:00:00:00"))
			.setTargetProtocolAddress(requestedAddress.getBytes()));
       
       Set<OFPort> portsConnectedToSwitches = new HashSet<OFPort>();
       
       for (Link link : linkDiscoveryService.getSwitchLinks().get(sw.getId())) {
       	if (link.getSrc() == sw.getId())
       		portsConnectedToSwitches.add(link.getSrcPort());
       }
       
       for (OFPortDesc port : sw.getPorts()) {
       	if (!portsConnectedToSwitches.contains(port.getPortNo())) {
       		pushPacket(arpRequest, sw, OFBufferId.NO_BUFFER, OFPort.ANY, port.getPortNo());
       	}
       }
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:33,代码来源:ObfuscationController.java

示例4: switchAdded

import net.floodlightcontroller.core.IOFSwitch; //导入方法依赖的package包/类
@Override
public void switchAdded(DatapathId dpid) {
	/* Insert static flows on all ports of the switch to redirect
	 * DHCP client --> DHCP DHCPServer traffic to the controller.
	 * DHCP client's operate on UDP port 67
	 */
	IOFSwitch sw = switchService.getSwitch(dpid);
	
	OFFlowAdd.Builder flow = sw.getOFFactory().buildFlowAdd();
	Match.Builder match = sw.getOFFactory().buildMatch();
	ArrayList<OFAction> actionList = new ArrayList<OFAction>();
	OFActionOutput.Builder action = sw.getOFFactory().actions().buildOutput();
	for (OFPortDesc port : sw.getPorts()) {
		match.setExact(MatchField.IN_PORT, port.getPortNo());
		match.setExact(MatchField.ETH_TYPE, EthType.IPv4);
		match.setExact(MatchField.IP_PROTO, IpProtocol.UDP);
		match.setExact(MatchField.UDP_SRC, UDP.DHCP_CLIENT_PORT);
		action.setMaxLen(0xffFFffFF);
		action.setPort(OFPort.CONTROLLER);
		actionList.add(action.build());
		
		flow.setBufferId(OFBufferId.NO_BUFFER);
		flow.setHardTimeout(0);
		flow.setIdleTimeout(0);
		flow.setOutPort(OFPort.CONTROLLER);
		flow.setActions(actionList);
		flow.setMatch(match.build());
		flow.setPriority(32767);
		sfp.addFlow("dhcp-port---" + port.getPortNo().getPortNumber() + "---(" + port.getName() + ")", flow.build(), sw.getId());
	}		
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:32,代码来源:DHCPSwitchFlowSetter.java


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