features/handlers/packet_in.feature in trema-0.8.1 vs features/handlers/packet_in.feature in trema-0.8.2
- old
+ new
@@ -1,32 +1,49 @@
Feature: packet_in handler
Background:
- Given a file named "packet_in_controller.rb" with:
+ Given a file named "trema.conf" with:
"""ruby
- class PacketInController < Trema::Controller
- def packet_in(dpid, message)
- logger.info "new packet_in (dpid = #{dpid.to_hex})"
- end
- end
- """
- And a file named "trema.conf" with:
- """ruby
vswitch { datapath_id 0xabc }
vhost('host1') { ip '192.168.0.1' }
vhost('host2') { ip '192.168.0.2' }
link '0xabc', 'host1'
link '0xabc', 'host2'
"""
@sudo
Scenario: invoke packet_in handler
- Given I successfully run `trema run packet_in_controller.rb -c trema.conf -d`
+ Given a file named "packet_in_controller.rb" with:
+ """ruby
+ class PacketInController < Trema::Controller
+ def packet_in(dpid, message)
+ logger.info "new packet_in (dpid = #{dpid.to_hex})"
+ end
+ end
+ """
+
+ And I successfully run `trema run packet_in_controller.rb -c trema.conf -d`
And I successfully run `sleep 3`
When I successfully run `trema send_packets --source host1 --dest host2`
Then the file "PacketInController.log" should contain "new packet_in (dpid = 0xabc)"
@sudo
Scenario: invoke packet_in handler (OpenFlow 1.3)
- Given I successfully run `trema run packet_in_controller.rb -c trema.conf --openflow13 -d`
+ Given a file named "packet_in_controller.rb" with:
+ """ruby
+ class PacketInController < Trema::Controller
+ def switch_ready(dpid)
+ send_flow_mod_add(
+ dpid,
+ match: Match.new,
+ instructions: Apply.new(SendOutPort.new(:controller))
+ )
+ end
+
+ def packet_in(dpid, message)
+ logger.info "new packet_in (dpid = #{dpid.to_hex})"
+ end
+ end
+ """
+ And I successfully run `trema run packet_in_controller.rb -c trema.conf --openflow13 -d`
And I successfully run `sleep 3`
When I successfully run `trema send_packets --source host1 --dest host2`
Then the file "PacketInController.log" should contain "new packet_in (dpid = 0xabc)"