Class: Trema::DSL::Syntax

Inherits:
Object
  • Object
show all
Defined in:
ruby/trema/dsl/syntax.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Syntax

Returns a new instance of Syntax.



45
46
47
# File 'ruby/trema/dsl/syntax.rb', line 45

def initialize config
  @config = config
end

Instance Method Details

#custom_switch(name = nil, &block) ⇒ Object



82
83
84
85
86
# File 'ruby/trema/dsl/syntax.rb', line 82

def custom_switch name = nil, &block
  stanza = Trema::DSL::CustomSwitch.new( name )
  stanza.instance_eval( &block )
  Trema::CustomSwitch.new stanza
end

#event(rule) ⇒ Object



108
109
110
# File 'ruby/trema/dsl/syntax.rb', line 108

def event rule
  Trema::SwitchManager.new( rule, @config.port )
end

#filter(rule) ⇒ Object



103
104
105
# File 'ruby/trema/dsl/syntax.rb', line 103

def filter rule
  Trema::PacketinFilter.new( rule )
end


55
56
57
58
# File 'ruby/trema/dsl/syntax.rb', line 55

def link peer0, peer1
  stanza = Trema::DSL::Link.new( peer0, peer1 )
  Trema::Link.new( stanza )
end

#netns(name, &block) ⇒ Object



96
97
98
99
100
# File 'ruby/trema/dsl/syntax.rb', line 96

def netns name, &block
  stanza = Trema::DSL::Netns.new( name )
  stanza.instance_eval( &block ) if block
  Trema::Netns.new( stanza )
end

#port(number) ⇒ Object



50
51
52
# File 'ruby/trema/dsl/syntax.rb', line 50

def port number
  @config.port = number
end

#rswitch(name = nil, &block) ⇒ Object



75
76
77
78
79
# File 'ruby/trema/dsl/syntax.rb', line 75

def rswitch name = nil, &block
  stanza = Trema::DSL::Rswitch.new( name )
  stanza.instance_eval( &block )
  Trema::RubySwitch.new( stanza )
end

#run(name = nil, &block) ⇒ Object



113
114
115
116
117
# File 'ruby/trema/dsl/syntax.rb', line 113

def run name = nil, &block
  stanza = Trema::DSL::Run.new( name )
  stanza.instance_eval( &block )
  Trema::App.new( stanza )
end

#switch(name = nil, &block) ⇒ Object



61
62
63
64
65
# File 'ruby/trema/dsl/syntax.rb', line 61

def switch name = nil, &block
  stanza = Trema::DSL::Switch.new( name )
  stanza.instance_eval( &block )
  Trema::HardwareSwitch.new( stanza )
end

#vhost(name = nil, &block) ⇒ Object



89
90
91
92
93
# File 'ruby/trema/dsl/syntax.rb', line 89

def vhost name = nil, &block
  stanza = Trema::DSL::Vhost.new( name )
  stanza.instance_eval( &block ) if block
  Trema::Host.new( stanza )
end

#vswitch(name = nil, &block) ⇒ Object



68
69
70
71
72
# File 'ruby/trema/dsl/syntax.rb', line 68

def vswitch name = nil, &block
  stanza = Trema::DSL::Vswitch.new( name )
  stanza.instance_eval( &block )
  Trema::OpenVswitch.new stanza, @config.port
end