Floodlight 处理交换机加入/移除过程

本文详细解析了Floodlight控制器如何处理交换机加入和移除过程,涉及OpenflowPipelineFactory配置、OFChannelHandler、消息处理流程、交换机状态更新以及LinkDiscoveryManager如何响应拓扑变化。主要通过监听套接字接收交换机请求,通过BlockingQueue实现生产者消费者模型,交换机的增删信息经SwitchUpdate分发给IOFSwitchListener,特别是LinkDiscoveryManager用于发现拓扑结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


     Floodlight 使用的是Netty架构,在Controller.java 入口函数中显示创建ServerBootstrap,设置套接字选项,ChannelPipeline,此时监听套接字就准备好处理来自SW的各种消息;这里最核心的就是 OpenflowPipelineFactory ,会加入各个业务相关的Handler,代码如下:

  public  ChannelPipeline getPipeline()  throws  Exception {
        OFChannelState state =  new  OFChannelState();
       
        ChannelPipeline pipeline = Channels. pipeline();
        pipeline.addLast(  "ofmessagedecoder" ,  new  OFMessageDecoder());
        pipeline.addLast(  "ofmessageencoder" ,  new  OFMessageEncoder());
        pipeline.addLast(  "idle" ,  idleHandler  );
        pipeline.addLast(  "timeout" ,  readTimeoutHandler  );
        pipeline.addLast(  "handshaketimeout" ,
                          new  HandshakeTimeoutHandler(state,  timer  , 15));
         if  ( pipelineExecutor  !=  null )
            pipeline.addLast(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值