Changes between Version 14 and Version 15 of Internal/OpenFlow/Controllers/MultiCtl


Ignore:
Timestamp:
Sep 21, 2012, 8:47:07 PM (12 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/Controllers/MultiCtl

    v14 v15  
    9797
    9898[[BR]]
    99 [#iv Back to Logs.]
     99End of week1 :[#iv Back to Logs.]
    100100==== (9/12) ====
    101101Several points were discussed.
     
    121121[http://www.znetdevelopment.com/blogs/2009/04/21/netty-using-handlers/ This] page was used as a reference.
    122122
    123 ==== (9/20) ====
     123[[BR]]
     124End of week2 :[#iv Back to Logs.]
     125==== (9/20) ==== #w3
    124126A topology file/parser were added. The file is a .json list of upstream and peer controller units (nickname:host:port triplet). This list is used to instantiate client-side connections to the neighbors.
    125127
     
    133135   * if received on 6644 and a client connection to originator exists, it is from a peer
    134136   * if received on a high-number port and originator does not connect to 6644, it is from upstream   
     137
     138==== (9/21) ====
     139Realizing that the lack of understanding of the Netty libraries was becoming a severe hindrance, we inspect a few documents to get up-to-speed:
     140
     141 * Netty Channel handlers: http://www.znetdevelopment.com/blogs/2009/04/21/netty-using-handlers/
     142 * Official Netty getting-started docs: http://docs.jboss.org/netty/3.1/guide/html/start.html
     143
     144With the new resources at hand, we re-document the modifications done to the main Floodlight event handler (Controller.java) in order to intercept and respond to messages from both switches and controller units.
     145
     146 1. ''The "server-side" channels.'' A control unit expects two types of incoming connections, 1) from switches, and 2) from other units (peer and downstream). These two are identified by default TCP port values of 6633 and 6644, respectively. The switch channel is handles using OFChannelHandler, which implements the classic !OpenFlow handshake. The unit channel, which we add as the UnitChannelHandler to our Controller.java derivative class (!UnitController.java), deals with the inter-unit handshake, which uses a modified version of !OpenFlow. Both are initialized and added to the same !ChannelGroup when the !UnitController run() method is called.     
     147
     148 2. ''client-side channels.'' A controller unit with upstream or peer units will connect to other units as clients.
    135149----
    136150[#home Home.]