关于FloodlightContext的不明白之处

public interface IOFMessageListener extends IListener<OFType>{
openflow消息监听器。
public Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx);
Floodlight用来调用openflow消息监听器的方法。( Floodlight会自己调用该方法吗, cntx到底是怎么传进去的
@param sw:发送此openflow消息的交换机。
@param msg:消息。
@param cntx:一个Floodlight上下文对象,用于在监听器之间传递消息( 如何传递消息?)。

@return:  继续或停止执行的命令。

}



定义 PACKET_IN 消息才处理机制,在最后返回 Command.CONTINUE 将允许这
套消息继续被其他的 PACKET_IN handler 处理。

@Override
public net.floodlightcontroller.core.Ilisterner.Command receive(IOFSwitch sw,
OFMessage msg, FloodlightContext cntx) {
Ethernet eth =
IFloodlightProviderService.bcStore.get(cntx,          /*cntx :a Floodlight message context object you can use to pass
   * information between listeners
IOFmessageListner中的*/

IFloodlightProviderService.CONTEXT_PI_PAYLOAD);
Long sourceMACHash = Ethernet.toLong(eth.getSourceMACAddress());
if (!macAddresses.contains(sourceMACHash)) {

macAddresses.add(sourceMACHash);
logger.info("MAC Address: {} seen on switch: {}",
HexString.toHexString(sourceMACHash),
sw.getId());
}

return Command.CONTINUE;
}


IFloodlightModule中的类似疑问?

void init(FloodlightModuleContext context) throws FloodlightModuleException;//context怎么传的?
    
    /**
     * This is a hook for each module to do its <em>external</em> initializations,
     * e.g., register for callbacks or query for state in other modules
     *
     * It is expected that this function will not block and that modules that want
     * non-event driven CPU will spawn their own threads.
     *
     * @param context
     */
    
    void startUp(FloodlightModuleContext context);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值