trema / trema-edge

Transient repository for Trema OF1.3 branch
27 stars 14 forks source link

Create OpenFlow 1.3.1 messages #13

Open yasuhito opened 11 years ago

yasuhito commented 11 years ago

でかいので後で分割しましょう。

nickkaranatsios commented 11 years ago

Currently coded messages:

Messages are also reside in a separate directory (messages) and for each message we have a Ruby class that defines the object and a corresponding c file with a pack method that creates the buffer object representation ready for transmission. A typical message class looks like the following:

require "trema/message-accessor"

module Trema
  module Messages
    class EchoRequest < MessageAccessor
      unsigned_int32 :transaction_id
      array :user_data
    end
  end
end

Again the MessageAccessor class name TBD.
Takamiya-san I am thinking of using the current controller helper methods like send_flow_mod_xxx but in addition create a corresponding Message object (FlowMod{Add,Modify,Delete} not only for processing and validating its options but also for storing the object for later reference if needed. Any thoughts on this subject. This would help me design the flow_mod message. Need also to check how set_match_from_packet would work. Hopefully I can have the learning-switch.rb going by the end of this week that's my target anyway.
Also which form of class decleration you prefer the multi-line one or the shorter version. For example:

module Trema
  module ActionList
    class CopyTtlOut < ActionAccessor
    end
  end
end

OR

class Trema::ActionList::CopyTtlOut < Trema::ActionAccessor
end