trema 0.2.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitmodules +3 -0
- data/.travis.yml +13 -0
- data/.yardopts +4 -0
- data/Gemfile +2 -3
- data/README.md +43 -97
- data/Rakefile +60 -4
- data/Rantfile +11 -10
- data/cruise.rb +4 -6
- data/features/example.packetin_filter_config.feature +10 -10
- data/features/example.switch_monitor.feature +14 -2
- data/features/step_definitions/kill_steps.rb +2 -2
- data/features/step_definitions/{off_steps.rb → killall_steps.rb} +2 -2
- data/features/step_definitions/misc_steps.rb +1 -1
- data/features/step_definitions/up_steps.rb +30 -0
- data/features/trema.feature +1 -0
- data/features/trema.run.feature +1 -0
- data/locale/README.ja.md +19 -0
- data/locale/ja/yard.po +3762 -0
- data/locale/yard.pot +3740 -0
- data/ruby/extconf.rb +4 -1
- data/ruby/trema/action-common.c +3 -17
- data/ruby/trema/action-common.h +3 -7
- data/ruby/trema/action.rb +33 -0
- data/ruby/trema/app.rb +1 -1
- data/ruby/trema/barrier-request.c +1 -0
- data/ruby/trema/command/run.rb +13 -9
- data/ruby/trema/command/usage.rb +1 -0
- data/ruby/trema/command/version.rb +1 -1
- data/ruby/trema/controller.c +133 -50
- data/ruby/trema/controller.rb +2 -2
- data/ruby/trema/desc-stats-reply.rb +77 -0
- data/ruby/trema/dsl/configuration.rb +3 -14
- data/ruby/trema/dsl/rswitch.rb +47 -0
- data/ruby/trema/dsl/runner.rb +4 -1
- data/ruby/trema/dsl/syntax.rb +11 -8
- data/ruby/trema/echo-reply.c +59 -45
- data/ruby/trema/echo-reply.h +1 -3
- data/ruby/trema/echo-request.c +49 -71
- data/ruby/trema/echo-request.h +0 -2
- data/ruby/trema/echo.c +99 -0
- data/ruby/trema/{action-enqueue.h → echo.h} +6 -7
- data/ruby/trema/enqueue.rb +87 -0
- data/ruby/trema/error.c +109 -104
- data/ruby/trema/error.h +0 -2
- data/ruby/trema/features-reply.c +89 -35
- data/ruby/trema/features-reply.h +0 -6
- data/ruby/trema/features-request.c +63 -37
- data/ruby/trema/features-request.h +0 -2
- data/ruby/trema/flow-mod.c +149 -0
- data/ruby/trema/{action-output.h → flow-mod.h} +6 -6
- data/ruby/trema/get-config-request.c +1 -0
- data/ruby/trema/hardware-switch.rb +88 -0
- data/ruby/trema/hello.c +55 -31
- data/ruby/trema/hello.h +0 -2
- data/ruby/trema/ip.rb +12 -2
- data/ruby/trema/logger.rb +29 -0
- data/ruby/trema/mac.rb +57 -36
- data/ruby/trema/match.c +7 -9
- data/ruby/trema/monkey-patch/integer/ranges.rb +0 -2
- data/ruby/trema/network-component.rb +1 -1
- data/ruby/trema/open-vswitch.rb +2 -2
- data/ruby/trema/openflow-switch.rb +3 -54
- data/ruby/trema/{packet_in.c → packet-in.c} +262 -175
- data/ruby/trema/{packet_in.h → packet-in.h} +0 -2
- data/ruby/trema/packet-queue.rb +4 -3
- data/ruby/trema/port-mod.c +8 -9
- data/ruby/trema/port-status-add.rb +60 -0
- data/ruby/trema/port-status-delete.rb +60 -0
- data/ruby/trema/port-status-modify.rb +60 -0
- data/ruby/trema/port-status.c +48 -15
- data/ruby/trema/port-status.h +6 -8
- data/ruby/trema/port.c +63 -8
- data/ruby/trema/queue-get-config-request.c +1 -0
- data/ruby/trema/ruby-switch.rb +62 -0
- data/ruby/trema/send-out-port.rb +97 -0
- data/ruby/trema/set-config.c +1 -0
- data/ruby/trema/set-eth-addr.rb +45 -0
- data/ruby/trema/set-eth-dst-addr.rb +54 -0
- data/ruby/trema/set-eth-src-addr.rb +54 -0
- data/ruby/trema/set-ip-addr.rb +47 -0
- data/ruby/trema/set-ip-dst-addr.rb +53 -0
- data/ruby/trema/set-ip-src-addr.rb +52 -0
- data/ruby/trema/set-ip-tos.rb +63 -0
- data/ruby/trema/set-transport-dst-port.rb +53 -0
- data/ruby/trema/set-transport-port.rb +52 -0
- data/ruby/trema/set-transport-src-port.rb +54 -0
- data/ruby/trema/set-vlan-priority.rb +65 -0
- data/ruby/trema/set-vlan-vid.rb +64 -0
- data/ruby/trema/shell/down.rb +1 -1
- data/ruby/trema/shell/link.rb +4 -4
- data/ruby/trema/shell/run.rb +8 -6
- data/ruby/trema/shell/up.rb +3 -3
- data/ruby/trema/stats-reply.c +27 -2
- data/ruby/trema/stats-request.c +64 -23
- data/ruby/trema/strip-vlan-header.rb +41 -0
- data/ruby/trema/switch.c +196 -0
- data/ruby/trema/{action-vendor.h → switch.h} +5 -7
- data/ruby/trema/switch.rb +28 -9
- data/ruby/trema/trema-ruby-utils.c +66 -0
- data/ruby/trema/{action-set-dl-src.h → trema-ruby-utils.h} +9 -11
- data/ruby/trema/trema.c +61 -61
- data/ruby/trema/vendor-action.rb +73 -0
- data/ruby/trema/vendor.c +121 -52
- data/ruby/trema/vendor.h +6 -10
- data/ruby/trema/version.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/support/action.rb +52 -0
- data/spec/support/mandatory-option.rb +56 -0
- data/spec/support/openflow-message.rb +91 -7
- data/spec/support/port-status.rb +38 -0
- data/spec/trema/controller_spec.rb +0 -26
- data/spec/trema/dsl/configuration_spec.rb +3 -3
- data/spec/trema/dsl/runner_spec.rb +12 -32
- data/spec/trema/dsl/syntax_spec.rb +2 -11
- data/spec/trema/echo-reply_spec.rb +49 -14
- data/spec/trema/echo-request_spec.rb +86 -34
- data/spec/trema/enqueue_spec.rb +76 -0
- data/spec/trema/error_spec.rb +43 -58
- data/spec/trema/features-reply_spec.rb +58 -24
- data/spec/trema/features-request_spec.rb +54 -28
- data/spec/trema/flow-mod_spec.rb +99 -0
- data/spec/trema/{openflow-switch_spec.rb → hardware-switch_spec.rb} +3 -3
- data/spec/trema/hello_spec.rb +28 -14
- data/spec/trema/ip_spec.rb +54 -0
- data/spec/trema/mac_spec.rb +49 -64
- data/spec/trema/match_spec.rb +1 -1
- data/spec/trema/open-vswitch_spec.rb +7 -7
- data/spec/trema/packet-in_spec.rb +73 -16
- data/spec/trema/port-status-add_spec.rb +32 -0
- data/spec/trema/port-status-delete_spec.rb +32 -0
- data/spec/trema/port-status-modify_spec.rb +71 -0
- data/spec/trema/port-status_spec.rb +5 -76
- data/spec/trema/{action-output_spec.rb → send-out-port_spec.rb} +20 -47
- data/spec/trema/set-eth-dst-addr_spec.rb +75 -0
- data/spec/trema/set-eth-src-addr_spec.rb +72 -0
- data/spec/trema/set-ip-dst-addr_spec.rb +58 -0
- data/spec/trema/set-ip-src-addr_spec.rb +58 -0
- data/spec/trema/set-ip-tos_spec.rb +65 -0
- data/spec/trema/set-transport-dst-port_spec.rb +65 -0
- data/spec/trema/set-transport-src-port_spec.rb +65 -0
- data/spec/trema/set-vlan-priority_spec.rb +65 -0
- data/spec/trema/set-vlan-vid_spec.rb +65 -0
- data/spec/trema/shell/vhost_spec.rb +4 -1
- data/spec/trema/shell/vswitch_spec.rb +11 -11
- data/spec/trema/stats-reply_spec.rb +59 -13
- data/spec/trema/stats-request_spec.rb +6 -0
- data/spec/trema/{action-strip-vlan_spec.rb → strip-vlan-header_spec.rb} +3 -17
- data/spec/trema/switch-daemon_spec.rb +39 -0
- data/spec/trema/vendor-action_spec.rb +81 -0
- data/spec/trema/vendor_spec.rb +76 -0
- data/spec/trema_spec.rb +56 -0
- data/src/examples/dumper/dumper.c +0 -8
- data/src/examples/dumper/dumper.rb +52 -52
- data/src/examples/hello_trema/hello_trema.c +0 -2
- data/src/examples/learning_switch/learning-switch.rb +3 -3
- data/src/examples/multi_learning_switch/multi-learning-switch.rb +3 -3
- data/src/examples/openflow_message/features-request.rb +3 -3
- data/src/examples/packetin_filter_config/utils.c +4 -4
- data/src/examples/repeater_hub/repeater-hub.rb +3 -3
- data/src/examples/switch_info/switch_info.rb +2 -2
- data/src/examples/switch_monitor/switch_monitor.c +1 -1
- data/src/examples/traffic_monitor/traffic-monitor.rb +3 -3
- data/src/lib/arp.h +4 -1
- data/src/lib/chibach.c +391 -0
- data/src/lib/chibach.h +71 -0
- data/src/lib/chibach_private.c +170 -0
- data/src/lib/chibach_private.h +52 -0
- data/src/lib/ether.c +2 -1
- data/src/lib/ether.h +0 -1
- data/src/lib/ipv4.h +13 -14
- data/{ruby/trema/action-set-nw-src.h → src/lib/ipv6.h} +13 -9
- data/src/lib/log.c +161 -58
- data/src/lib/log.h +11 -16
- data/src/lib/messenger.c +36 -1
- data/src/lib/messenger.h +1 -0
- data/src/lib/openflow_application_interface.c +128 -28
- data/src/lib/openflow_application_interface.h +31 -6
- data/src/lib/openflow_message.c +2 -1
- data/src/lib/openflow_service_interface.h +1 -0
- data/src/lib/openflow_switch_interface.c +1380 -0
- data/src/lib/openflow_switch_interface.h +264 -0
- data/src/lib/packet_info.c +94 -11
- data/src/lib/packet_info.h +22 -3
- data/src/lib/packet_parser.c +38 -2
- data/src/lib/secure_channel.c +498 -0
- data/{ruby/trema/vendor-request.h → src/lib/secure_channel.h} +11 -10
- data/src/lib/tcp.h +0 -3
- data/src/lib/trema.c +38 -5
- data/{ruby/trema/action-set-nw-dst.h → src/lib/trema.hpp} +17 -8
- data/src/lib/trema_wrapper.c +5 -0
- data/src/lib/trema_wrapper.h +4 -0
- data/src/lib/utility.c +93 -4
- data/src/lib/utility.h +1 -0
- data/src/lib/wrapper.c +30 -7
- data/src/lib/wrapper.h +2 -0
- data/src/switch_manager/ofpmsg_recv.c +44 -30
- data/src/switch_manager/ofpmsg_send.c +40 -1
- data/src/switch_manager/ofpmsg_send.h +2 -0
- data/src/switch_manager/switch.c +153 -8
- data/src/switch_manager/switch.h +1 -0
- data/src/switch_manager/switchinfo.h +5 -0
- data/src/tremashark/README +2 -2
- data/src/tremashark/plugin/packet-trema/packet-trema.c +1 -0
- data/trema +1 -1
- data/unittests/lib/log_test.c +158 -34
- data/unittests/lib/openflow_application_interface_test.c +252 -69
- data/unittests/lib/openflow_message_test.c +3 -1
- data/unittests/lib/packet_parser_test.c +60 -15
- data/unittests/lib/test_packets/icmp6_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/icmp6_echo_req.cap +0 -0
- data/unittests/lib/trema_test.c +2 -0
- data/unittests/lib/utility_test.c +65 -2
- data/unittests/lib/wrapper_test.c +29 -0
- data/vendor/{README → README.md} +2 -12
- data/vendor/packet-openflow.diff +13 -0
- metadata +86 -53
- data/GPL2 +0 -339
- data/ruby/trema/action-enqueue.c +0 -161
- data/ruby/trema/action-output.c +0 -169
- data/ruby/trema/action-set-dl-dst.c +0 -131
- data/ruby/trema/action-set-dl-dst.h +0 -44
- data/ruby/trema/action-set-dl-src.c +0 -131
- data/ruby/trema/action-set-nw-dst.c +0 -135
- data/ruby/trema/action-set-nw-src.c +0 -140
- data/ruby/trema/action-set-nw-tos.c +0 -124
- data/ruby/trema/action-set-nw-tos.h +0 -42
- data/ruby/trema/action-set-tp-dst.c +0 -122
- data/ruby/trema/action-set-tp-dst.h +0 -42
- data/ruby/trema/action-set-tp-src.c +0 -124
- data/ruby/trema/action-set-tp-src.h +0 -42
- data/ruby/trema/action-set-vlan-pcp.c +0 -128
- data/ruby/trema/action-set-vlan-pcp.h +0 -42
- data/ruby/trema/action-set-vlan-vid.c +0 -125
- data/ruby/trema/action-set-vlan-vid.h +0 -42
- data/ruby/trema/action-strip-vlan.c +0 -81
- data/ruby/trema/action-strip-vlan.h +0 -42
- data/ruby/trema/action-vendor.c +0 -121
- data/ruby/trema/vendor-request.c +0 -193
- data/spec/trema/action-enqueue_spec.rb +0 -100
- data/spec/trema/action-set-dl-dst_spec.rb +0 -95
- data/spec/trema/action-set-dl-src_spec.rb +0 -92
- data/spec/trema/action-set-nw-dst_spec.rb +0 -96
- data/spec/trema/action-set-nw-src_spec.rb +0 -97
- data/spec/trema/action-set-nw-tos_spec.rb +0 -88
- data/spec/trema/action-set-tp-dst_spec.rb +0 -88
- data/spec/trema/action-set-tp-src_spec.rb +0 -88
- data/spec/trema/action-set-vlan-pcp_spec.rb +0 -91
- data/spec/trema/action-set-vlan-vid_spec.rb +0 -91
- data/spec/trema/action-vendor_spec.rb +0 -90
- data/spec/trema/vendor-request_spec.rb +0 -79
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
#include <string.h>
|
|
28
28
|
#include <sys/types.h>
|
|
29
29
|
#include <unistd.h>
|
|
30
|
+
#include <netinet/ip.h>
|
|
31
|
+
#include <net/if_arp.h>
|
|
30
32
|
#include "byteorder.h"
|
|
31
33
|
#include "checks.h"
|
|
32
34
|
#include "cmockery_trema.h"
|
|
@@ -99,7 +101,7 @@ mock_debug( char *format, ... ) {
|
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
|
|
102
|
-
static
|
|
104
|
+
static int
|
|
103
105
|
mock_get_logging_level() {
|
|
104
106
|
return LOG_DEBUG;
|
|
105
107
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Unit tests for packet_parser functions and macros.
|
|
3
3
|
*
|
|
4
|
-
* Author: Kazuya Suzuki
|
|
5
|
-
*
|
|
6
4
|
* Copyright (C) 2008-2012 NEC Corporation
|
|
7
5
|
*
|
|
8
6
|
* This program is free software; you can redistribute it and/or modify
|
|
@@ -46,20 +44,20 @@ store_packet_to_buffer( const char *filename ) {
|
|
|
46
44
|
// "Can't open a file of test data."
|
|
47
45
|
return NULL;
|
|
48
46
|
}
|
|
49
|
-
|
|
50
|
-
// Skip
|
|
47
|
+
|
|
48
|
+
// Skip
|
|
51
49
|
if ( fseek( fp, sizeof( struct pcap_file_header ) + sizeof( uint32_t ) * 2,
|
|
52
50
|
SEEK_CUR ) != 0 ) {
|
|
53
51
|
fclose( fp );
|
|
54
52
|
return NULL;
|
|
55
|
-
}
|
|
56
|
-
|
|
53
|
+
}
|
|
54
|
+
|
|
57
55
|
uint32_t length[ 2 ];
|
|
58
56
|
size_t size = fread( &length, 1, sizeof( length ), fp );
|
|
59
57
|
if ( size < sizeof( length ) ) {
|
|
60
58
|
fclose( fp );
|
|
61
59
|
return NULL;
|
|
62
|
-
}
|
|
60
|
+
}
|
|
63
61
|
|
|
64
62
|
buffer *buffer = alloc_buffer();
|
|
65
63
|
if ( buffer == NULL ) {
|
|
@@ -71,7 +69,7 @@ store_packet_to_buffer( const char *filename ) {
|
|
|
71
69
|
free_buffer( buffer );
|
|
72
70
|
fclose( fp );
|
|
73
71
|
return NULL;
|
|
74
|
-
}
|
|
72
|
+
}
|
|
75
73
|
|
|
76
74
|
fclose( fp );
|
|
77
75
|
return buffer;
|
|
@@ -92,7 +90,7 @@ test_parse_packet_snap_succeeds() {
|
|
|
92
90
|
packet_info *packet_info = buffer->user_data;
|
|
93
91
|
|
|
94
92
|
assert_int_equal( packet_info->format, ETH_8023_SNAP );
|
|
95
|
-
|
|
93
|
+
|
|
96
94
|
u_char macda[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
|
97
95
|
u_char macsa[] = { 0x00, 0x19, 0xdb, 0x17, 0xb9, 0x6f };
|
|
98
96
|
assert_memory_equal( packet_info->eth_macda, macda, ETH_ADDRLEN );
|
|
@@ -141,7 +139,37 @@ test_parse_packet_arp_request_succeeds() {
|
|
|
141
139
|
assert_memory_equal( packet_info->arp_sha, macsa, ETH_ADDRLEN );
|
|
142
140
|
assert_int_equal( packet_info->arp_tpa, 0xc0a8642b );
|
|
143
141
|
u_char maczero[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
144
|
-
assert_memory_equal( packet_info->arp_tha, maczero, ETH_ADDRLEN );
|
|
142
|
+
assert_memory_equal( packet_info->arp_tha, maczero, ETH_ADDRLEN );
|
|
143
|
+
|
|
144
|
+
assert_true( packet_type_arp_request( buffer ) );
|
|
145
|
+
assert_false( packet_type_arp_reply( buffer ) );
|
|
146
|
+
|
|
147
|
+
free_buffer( buffer );
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
static void
|
|
152
|
+
test_parse_packet_ipv6_succeeds() {
|
|
153
|
+
const char filename[] = "./unittests/lib/test_packets/icmp6_echo_req.cap";
|
|
154
|
+
buffer *buffer = store_packet_to_buffer( filename );
|
|
155
|
+
|
|
156
|
+
assert_true( parse_packet( buffer ) );
|
|
157
|
+
|
|
158
|
+
packet_info *packet_info = buffer->user_data;
|
|
159
|
+
|
|
160
|
+
assert_int_equal( packet_info->ipv6_version, 6 );
|
|
161
|
+
assert_int_equal( packet_info->ipv6_tc, 0 );
|
|
162
|
+
assert_int_equal( packet_info->ipv6_flowlabel, 0 );
|
|
163
|
+
assert_int_equal( packet_info->ipv6_plen, 0x40 );
|
|
164
|
+
assert_int_equal( packet_info->ipv6_nexthdr, 0x3a );
|
|
165
|
+
assert_int_equal( packet_info->ipv6_hoplimit, 0x40 );
|
|
166
|
+
|
|
167
|
+
u_char saddr[] = { 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
168
|
+
0x8e, 0x89, 0xa5, 0xff, 0xfe, 0x16, 0x22, 0x09 };
|
|
169
|
+
u_char daddr[] = { 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
170
|
+
0x8e, 0x89, 0xa5, 0xff, 0xfe, 0x15, 0x84, 0xcb };
|
|
171
|
+
assert_memory_equal( packet_info->ipv6_saddr, saddr, IPV6_ADDRLEN );
|
|
172
|
+
assert_memory_equal( packet_info->ipv6_daddr, daddr, IPV6_ADDRLEN );
|
|
145
173
|
|
|
146
174
|
free_buffer( buffer );
|
|
147
175
|
}
|
|
@@ -163,7 +191,7 @@ test_parse_packet_udp_succeeds() {
|
|
|
163
191
|
assert_memory_equal( packet_info->eth_macda, macda, ETH_ADDRLEN );
|
|
164
192
|
assert_memory_equal( packet_info->eth_macsa, macsa, ETH_ADDRLEN );
|
|
165
193
|
assert_int_equal( packet_info->eth_type, ETH_ETHTYPE_IPV4 );
|
|
166
|
-
|
|
194
|
+
|
|
167
195
|
assert_int_equal( packet_info->l2_payload_length, 76 );
|
|
168
196
|
|
|
169
197
|
assert_int_equal( packet_info->ipv4_version, 4 );
|
|
@@ -212,7 +240,7 @@ test_parse_packet_udp_fragmented_head_succeeds() {
|
|
|
212
240
|
assert_int_equal( packet_info->eth_type, ETH_ETHTYPE_IPV4 );
|
|
213
241
|
|
|
214
242
|
assert_int_equal( packet_info->l2_payload_length, 1500 );
|
|
215
|
-
|
|
243
|
+
|
|
216
244
|
assert_int_equal( packet_info->ipv4_version, 4 );
|
|
217
245
|
assert_int_equal( packet_info->ipv4_ihl, 5 );
|
|
218
246
|
assert_int_equal( packet_info->ipv4_tos, 0 );
|
|
@@ -257,7 +285,7 @@ test_parse_packet_udp_fragmented_next_succeeds() {
|
|
|
257
285
|
assert_memory_equal( packet_info->eth_macda, macda, ETH_ADDRLEN );
|
|
258
286
|
assert_memory_equal( packet_info->eth_macsa, macsa, ETH_ADDRLEN );
|
|
259
287
|
assert_int_equal( packet_info->eth_type, ETH_ETHTYPE_IPV4 );
|
|
260
|
-
|
|
288
|
+
|
|
261
289
|
assert_int_equal( packet_info->l2_payload_length, 1500 );
|
|
262
290
|
|
|
263
291
|
assert_int_equal( packet_info->ipv4_version, 4 );
|
|
@@ -306,7 +334,7 @@ test_parse_packet_tcp_syn_succeeds() {
|
|
|
306
334
|
assert_memory_equal( packet_info->eth_macda, macda, ETH_ADDRLEN );
|
|
307
335
|
assert_memory_equal( packet_info->eth_macsa, macsa, ETH_ADDRLEN );
|
|
308
336
|
assert_int_equal( packet_info->eth_type, ETH_ETHTYPE_IPV4 );
|
|
309
|
-
|
|
337
|
+
|
|
310
338
|
assert_int_equal( packet_info->l2_payload_length, 60 );
|
|
311
339
|
|
|
312
340
|
assert_int_equal( packet_info->ipv4_version, 4 );
|
|
@@ -356,7 +384,7 @@ test_parse_packet_tcp_succeeds() {
|
|
|
356
384
|
assert_memory_equal( packet_info->eth_macda, macda, ETH_ADDRLEN );
|
|
357
385
|
assert_memory_equal( packet_info->eth_macsa, macsa, ETH_ADDRLEN );
|
|
358
386
|
assert_int_equal( packet_info->eth_type, ETH_ETHTYPE_IPV4 );
|
|
359
|
-
|
|
387
|
+
|
|
360
388
|
assert_int_equal( packet_info->l2_payload_length, 82 );
|
|
361
389
|
|
|
362
390
|
assert_int_equal( packet_info->ipv4_version, 4 );
|
|
@@ -435,6 +463,11 @@ test_parse_packet_icmpv4_echo_request_succeeds() {
|
|
|
435
463
|
|
|
436
464
|
assert_int_equal( packet_info->l4_payload_length, 56 );
|
|
437
465
|
|
|
466
|
+
assert_true( packet_type_icmpv4_echo_request( buffer ) );
|
|
467
|
+
assert_false( packet_type_icmpv4_dst_unreach( buffer ) );
|
|
468
|
+
assert_false( packet_type_icmpv4_redirect( buffer ) );
|
|
469
|
+
assert_false( packet_type_icmpv4_echo_reply( buffer ) );
|
|
470
|
+
|
|
438
471
|
free_buffer( buffer );
|
|
439
472
|
}
|
|
440
473
|
|
|
@@ -488,6 +521,11 @@ test_parse_packet_vtag_icmpv4_echo_request_succeeds() {
|
|
|
488
521
|
assert_int_equal( sample, 0x6162 );
|
|
489
522
|
assert_int_equal( packet_info->l4_payload_length, 32 );
|
|
490
523
|
|
|
524
|
+
assert_true( packet_type_icmpv4_echo_request( buffer ) );
|
|
525
|
+
assert_false( packet_type_icmpv4_dst_unreach( buffer ) );
|
|
526
|
+
assert_false( packet_type_icmpv4_redirect( buffer ) );
|
|
527
|
+
assert_false( packet_type_icmpv4_echo_reply( buffer ) );
|
|
528
|
+
|
|
491
529
|
free_buffer( buffer );
|
|
492
530
|
}
|
|
493
531
|
|
|
@@ -541,6 +579,11 @@ test_parse_packet_vtag_icmpv4_echo_reply_succeeds() {
|
|
|
541
579
|
assert_int_equal( sample, 0x6162 );
|
|
542
580
|
assert_int_equal( packet_info->l4_payload_length, 32 );
|
|
543
581
|
|
|
582
|
+
assert_false( packet_type_icmpv4_echo_request( buffer ) );
|
|
583
|
+
assert_false( packet_type_icmpv4_dst_unreach( buffer ) );
|
|
584
|
+
assert_false( packet_type_icmpv4_redirect( buffer ) );
|
|
585
|
+
assert_true( packet_type_icmpv4_echo_reply( buffer ) );
|
|
586
|
+
|
|
544
587
|
free_buffer( buffer );
|
|
545
588
|
}
|
|
546
589
|
|
|
@@ -672,6 +715,8 @@ main() {
|
|
|
672
715
|
|
|
673
716
|
unit_test( test_parse_packet_arp_request_succeeds ),
|
|
674
717
|
|
|
718
|
+
unit_test( test_parse_packet_ipv6_succeeds ),
|
|
719
|
+
|
|
675
720
|
unit_test( test_parse_packet_udp_succeeds ),
|
|
676
721
|
unit_test( test_parse_packet_udp_fragmented_head_succeeds ),
|
|
677
722
|
unit_test( test_parse_packet_udp_fragmented_next_succeeds ),
|
|
Binary file
|
|
Binary file
|
data/unittests/lib/trema_test.c
CHANGED
|
@@ -719,6 +719,7 @@ test_parse_help_option() {
|
|
|
719
719
|
" -n, --name=SERVICE_NAME service name\n"
|
|
720
720
|
" -d, --daemonize run in the background\n"
|
|
721
721
|
" -l, --logging_level=LEVEL set logging level\n"
|
|
722
|
+
" -g, --syslog output log messages to syslog\n"
|
|
722
723
|
" -h, --help display this help and exit\n"
|
|
723
724
|
);
|
|
724
725
|
expect_value( mock_exit, status, EXIT_SUCCESS );
|
|
@@ -742,6 +743,7 @@ test_parse_h_option() {
|
|
|
742
743
|
" -n, --name=SERVICE_NAME service name\n"
|
|
743
744
|
" -d, --daemonize run in the background\n"
|
|
744
745
|
" -l, --logging_level=LEVEL set logging level\n"
|
|
746
|
+
" -g, --syslog output log messages to syslog\n"
|
|
745
747
|
" -h, --help display this help and exit\n"
|
|
746
748
|
);
|
|
747
749
|
expect_value( mock_exit, status, EXIT_SUCCESS );
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
#include <stdio.h>
|
|
28
28
|
#include <stdlib.h>
|
|
29
29
|
#include <string.h>
|
|
30
|
+
#include <arpa/inet.h>
|
|
30
31
|
#include "cmockery_trema.h"
|
|
31
32
|
#include "log.h"
|
|
32
33
|
#include "ipv4.h"
|
|
@@ -198,10 +199,66 @@ test_string_to_datapath_id() {
|
|
|
198
199
|
}
|
|
199
200
|
|
|
200
201
|
|
|
202
|
+
static void
|
|
203
|
+
test_wildcards_to_string_with_exact_match() {
|
|
204
|
+
char wildcards_str[ 128 ];
|
|
205
|
+
char expected_wildcards_str[] = "none";
|
|
206
|
+
uint32_t wildcards = 0;
|
|
207
|
+
assert_true( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
208
|
+
assert_string_equal( wildcards_str, expected_wildcards_str );
|
|
209
|
+
|
|
210
|
+
wildcards = UINT32_MAX & ~( ( uint32_t ) OFPFW_ALL );
|
|
211
|
+
assert_true( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
212
|
+
assert_string_equal( wildcards_str, expected_wildcards_str );
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
static void
|
|
217
|
+
test_wildcards_to_string_with_all_wildcards() {
|
|
218
|
+
char wildcards_str[ 128 ];
|
|
219
|
+
char expected_wildcards_str[] = "all";
|
|
220
|
+
uint32_t wildcards = OFPFW_ALL;
|
|
221
|
+
assert_true( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
222
|
+
assert_string_equal( wildcards_str, expected_wildcards_str );
|
|
223
|
+
|
|
224
|
+
wildcards = UINT32_MAX;
|
|
225
|
+
assert_true( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
226
|
+
assert_string_equal( wildcards_str, expected_wildcards_str );
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
static void
|
|
231
|
+
test_wildcards_to_string_with_all_wildcards_except_in_port() {
|
|
232
|
+
char wildcards_str[ 128 ];
|
|
233
|
+
char expected_wildcards_str[] = "dl_src|dl_dst|dl_type|dl_vlan|dl_vlan_pcp|nw_proto|nw_tos|nw_src(63)|nw_dst(63)|tp_src|tp_dst";
|
|
234
|
+
uint32_t wildcards = OFPFW_ALL & ~OFPFW_IN_PORT;
|
|
235
|
+
assert_true( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
236
|
+
assert_string_equal( wildcards_str, expected_wildcards_str );
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
static void
|
|
241
|
+
test_wildcards_to_string_with_all_wildcards_except_dl_addrs() {
|
|
242
|
+
char wildcards_str[ 128 ];
|
|
243
|
+
char expected_wildcards_str[] = "in_port|dl_type|dl_vlan|dl_vlan_pcp|nw_proto|nw_tos|nw_src(63)|nw_dst(63)|tp_src|tp_dst";
|
|
244
|
+
uint32_t wildcards = OFPFW_ALL & ~OFPFW_DL_SRC & ~OFPFW_DL_DST;
|
|
245
|
+
assert_true( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
246
|
+
assert_string_equal( wildcards_str, expected_wildcards_str );
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
static void
|
|
251
|
+
test_wildcards_to_string_fails_with_insufficient_buffer() {
|
|
252
|
+
char wildcards_str[ 1 ];
|
|
253
|
+
uint32_t wildcards = 0;
|
|
254
|
+
assert_false( wildcards_to_string( wildcards, wildcards_str, sizeof( wildcards_str ) ) );
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
|
|
201
258
|
static void
|
|
202
259
|
test_match_to_string() {
|
|
203
260
|
char match_str[ 256 ];
|
|
204
|
-
char expected_match_str[] = "wildcards = 0, in_port = 1, dl_src = 01:02:03:04:05:07, dl_dst = 08:09:0a:0b:0c:0d, dl_vlan = 1, dl_vlan_pcp = 1, dl_type = 0x800, nw_tos = 1, nw_proto = 6, nw_src = 10.9.8.7/32, nw_dst = 6.5.4.3/32, tp_src = 1024, tp_dst = 2048";
|
|
261
|
+
char expected_match_str[] = "wildcards = 0(none), in_port = 1, dl_src = 01:02:03:04:05:07, dl_dst = 08:09:0a:0b:0c:0d, dl_vlan = 1, dl_vlan_pcp = 1, dl_type = 0x800, nw_tos = 1, nw_proto = 6, nw_src = 10.9.8.7/32, nw_dst = 6.5.4.3/32, tp_src = 1024, tp_dst = 2048";
|
|
205
262
|
struct ofp_match match = { 0, 1,
|
|
206
263
|
{ 0x01, 0x02, 0x03, 0x04, 0x05, 0x07 },
|
|
207
264
|
{ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d },
|
|
@@ -225,7 +282,7 @@ test_match_to_string_fails_with_insufficient_buffer() {
|
|
|
225
282
|
static void
|
|
226
283
|
test_phy_port_to_string() {
|
|
227
284
|
char phy_port_str[ 256 ];
|
|
228
|
-
char expected_phy_port_str[] = "port_no = 1, hw_addr =
|
|
285
|
+
char expected_phy_port_str[] = "port_no = 1, hw_addr = 01:02:03:04:05:06, name = GbE 0/1, config = 0x1, state = 0x1, curr = 0x4a0, advertised = 0x6bf, supported = 0x6bf, peer = 0x6bf";
|
|
229
286
|
uint8_t hw_addr[ OFP_ETH_ALEN ] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
|
|
230
287
|
uint32_t port_features = ( OFPPF_10MB_HD | OFPPF_10MB_FD | OFPPF_100MB_HD |
|
|
231
288
|
OFPPF_100MB_FD | OFPPF_1GB_HD | OFPPF_1GB_FD |
|
|
@@ -589,6 +646,12 @@ main() {
|
|
|
589
646
|
|
|
590
647
|
unit_test( test_string_to_datapath_id ),
|
|
591
648
|
|
|
649
|
+
unit_test( test_wildcards_to_string_with_exact_match ),
|
|
650
|
+
unit_test( test_wildcards_to_string_with_all_wildcards ),
|
|
651
|
+
unit_test( test_wildcards_to_string_with_all_wildcards_except_in_port ),
|
|
652
|
+
unit_test( test_wildcards_to_string_with_all_wildcards_except_dl_addrs ),
|
|
653
|
+
unit_test( test_wildcards_to_string_fails_with_insufficient_buffer ),
|
|
654
|
+
|
|
592
655
|
unit_test( test_match_to_string ),
|
|
593
656
|
unit_test( test_match_to_string_fails_with_insufficient_buffer ),
|
|
594
657
|
|
|
@@ -154,6 +154,32 @@ test_xstrdup_fail() {
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
|
|
157
|
+
static char *
|
|
158
|
+
test_xvasprintf_helper( const char *fmt, ... ) {
|
|
159
|
+
va_list ap;
|
|
160
|
+
va_start(ap, fmt);
|
|
161
|
+
char *str = xvasprintf( fmt, ap );
|
|
162
|
+
va_end(ap);
|
|
163
|
+
return str;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
static void
|
|
168
|
+
test_xvasprintf() {
|
|
169
|
+
char hello[] = "Hello";
|
|
170
|
+
char *printed_hello = test_xvasprintf_helper( "%s", hello );
|
|
171
|
+
assert_string_equal( hello, printed_hello );
|
|
172
|
+
xfree( printed_hello );
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
static void
|
|
177
|
+
test_xvasprintf_fail() {
|
|
178
|
+
expect_string( mock_die, output, "Out of memory, xvasprintf failed" );
|
|
179
|
+
expect_assert_failure( test_xvasprintf_helper( "FAIL" ) );
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
|
|
157
183
|
static void
|
|
158
184
|
test_xasprintf() {
|
|
159
185
|
char hello[] = "Hello";
|
|
@@ -186,6 +212,9 @@ main() {
|
|
|
186
212
|
unit_test_setup_teardown( test_xstrdup, setup, teardown ),
|
|
187
213
|
unit_test_setup_teardown( test_xstrdup_fail, setup_fail_allocators, teardown ),
|
|
188
214
|
|
|
215
|
+
unit_test_setup_teardown( test_xvasprintf, setup, teardown ),
|
|
216
|
+
unit_test_setup_teardown( test_xvasprintf_fail, setup_fail_allocators, teardown ),
|
|
217
|
+
|
|
189
218
|
unit_test_setup_teardown( test_xasprintf, setup, teardown ),
|
|
190
219
|
unit_test_setup_teardown( test_xasprintf_fail, setup_fail_allocators, teardown ),
|
|
191
220
|
};
|
data/vendor/{README → README.md}
RENAMED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
Notes on Third Party Software Packages
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Copyright (C) 2008-2011 NEC Corporation
|
|
5
|
-
|
|
6
|
-
Copying and distribution of this file, with or without modification,
|
|
7
|
-
are permitted in any medium without royalty provided the copyright
|
|
8
|
-
notice and this notice are preserved.
|
|
9
|
-
|
|
10
|
-
Notice
|
|
11
|
-
======
|
|
2
|
+
======================================
|
|
12
3
|
|
|
13
4
|
Software packages found in this directory are not part of Trema. Each software
|
|
14
5
|
packages is distributed under the terms and conditions described in the package.
|
|
15
6
|
|
|
16
7
|
|
|
17
8
|
Notes on oflops (vendor/oflops)
|
|
18
|
-
|
|
9
|
+
-------------------------------
|
|
19
10
|
|
|
20
11
|
oflops is a set of tools for measuring the performance of OpenFlow switches and
|
|
21
12
|
controllers. You can find detailed information about oflops on:
|
|
@@ -27,4 +18,3 @@ of this OpenFlow controller platform, we disabled the functions. In addition,
|
|
|
27
18
|
because there are some issues on OpenFlow messages that cbench (a performance
|
|
28
19
|
measurement tool for OpenFlow controllers) sends, we fixed them. Any changes
|
|
29
20
|
from the repository of oflops can be found in oflops_no_snmp+1.0.0.patch.
|
|
30
|
-
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
diff --git a/utilities/wireshark_dissectors/openflow/packet-openflow.c b/utilities/wireshark_dissectors/openflow/packet-openflow.c
|
|
2
|
+
index aea00f8..8d98335 100644
|
|
3
|
+
--- a/utilities/wireshark_dissectors/openflow/packet-openflow.c
|
|
4
|
+
+++ b/utilities/wireshark_dissectors/openflow/packet-openflow.c
|
|
5
|
+
@@ -766,7 +766,7 @@ static gint ett_ofp_error_msg_data = -1;
|
|
6
|
+
void proto_reg_handoff_openflow()
|
|
7
|
+
{
|
|
8
|
+
openflow_handle = create_dissector_handle(dissect_openflow, proto_openflow);
|
|
9
|
+
- dissector_add(TCP_PORT_FILTER, global_openflow_proto, openflow_handle);
|
|
10
|
+
+ dissector_add_uint(TCP_PORT_FILTER, global_openflow_proto, openflow_handle);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#define NO_STRINGS NULL
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: trema
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 17
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 2
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
version: 0.2.2.1
|
|
9
|
+
- 3
|
|
10
|
+
version: 0.2.3
|
|
12
11
|
platform: ruby
|
|
13
12
|
authors:
|
|
14
13
|
- Yasuhito Takamiya
|
|
@@ -16,7 +15,7 @@ autorequire:
|
|
|
16
15
|
bindir: .
|
|
17
16
|
cert_chain: []
|
|
18
17
|
|
|
19
|
-
date: 2012-
|
|
18
|
+
date: 2012-07-30 00:00:00 Z
|
|
20
19
|
dependencies:
|
|
21
20
|
- !ruby/object:Gem::Dependency
|
|
22
21
|
name: rake
|
|
@@ -44,9 +43,11 @@ extra_rdoc_files:
|
|
|
44
43
|
- README.md
|
|
45
44
|
files:
|
|
46
45
|
- .gitignore
|
|
46
|
+
- .gitmodules
|
|
47
47
|
- .mono.rant
|
|
48
|
+
- .travis.yml
|
|
49
|
+
- .yardopts
|
|
48
50
|
- Doxyfile
|
|
49
|
-
- GPL2
|
|
50
51
|
- Gemfile
|
|
51
52
|
- README.md
|
|
52
53
|
- Rakefile
|
|
@@ -67,13 +68,14 @@ files:
|
|
|
67
68
|
- features/example.switch_monitor.feature
|
|
68
69
|
- features/packetin_filter.feature
|
|
69
70
|
- features/step_definitions/kill_steps.rb
|
|
71
|
+
- features/step_definitions/killall_steps.rb
|
|
70
72
|
- features/step_definitions/log_steps.rb
|
|
71
73
|
- features/step_definitions/misc_steps.rb
|
|
72
|
-
- features/step_definitions/off_steps.rb
|
|
73
74
|
- features/step_definitions/run_steps.rb
|
|
74
75
|
- features/step_definitions/send_packets_steps.rb
|
|
75
76
|
- features/step_definitions/show_stats_steps.rb
|
|
76
77
|
- features/step_definitions/stats_steps.rb
|
|
78
|
+
- features/step_definitions/up_steps.rb
|
|
77
79
|
- features/support/env.rb
|
|
78
80
|
- features/support/hooks.rb
|
|
79
81
|
- features/switch_manager.feature
|
|
@@ -89,38 +91,16 @@ files:
|
|
|
89
91
|
- features/tutorial.hello_trema.feature
|
|
90
92
|
- features/tutorial.packet_in.feature
|
|
91
93
|
- features/tutorial.switch_info.feature
|
|
94
|
+
- locale/README.ja.md
|
|
95
|
+
- locale/ja/yard.po
|
|
96
|
+
- locale/yard.pot
|
|
92
97
|
- ruby/.gitignore
|
|
93
98
|
- ruby/blocker.rb
|
|
94
99
|
- ruby/extconf.rb
|
|
95
100
|
- ruby/sub-process.rb
|
|
96
101
|
- ruby/trema/action-common.c
|
|
97
102
|
- ruby/trema/action-common.h
|
|
98
|
-
- ruby/trema/action
|
|
99
|
-
- ruby/trema/action-enqueue.h
|
|
100
|
-
- ruby/trema/action-output.c
|
|
101
|
-
- ruby/trema/action-output.h
|
|
102
|
-
- ruby/trema/action-set-dl-dst.c
|
|
103
|
-
- ruby/trema/action-set-dl-dst.h
|
|
104
|
-
- ruby/trema/action-set-dl-src.c
|
|
105
|
-
- ruby/trema/action-set-dl-src.h
|
|
106
|
-
- ruby/trema/action-set-nw-dst.c
|
|
107
|
-
- ruby/trema/action-set-nw-dst.h
|
|
108
|
-
- ruby/trema/action-set-nw-src.c
|
|
109
|
-
- ruby/trema/action-set-nw-src.h
|
|
110
|
-
- ruby/trema/action-set-nw-tos.c
|
|
111
|
-
- ruby/trema/action-set-nw-tos.h
|
|
112
|
-
- ruby/trema/action-set-tp-dst.c
|
|
113
|
-
- ruby/trema/action-set-tp-dst.h
|
|
114
|
-
- ruby/trema/action-set-tp-src.c
|
|
115
|
-
- ruby/trema/action-set-tp-src.h
|
|
116
|
-
- ruby/trema/action-set-vlan-pcp.c
|
|
117
|
-
- ruby/trema/action-set-vlan-pcp.h
|
|
118
|
-
- ruby/trema/action-set-vlan-vid.c
|
|
119
|
-
- ruby/trema/action-set-vlan-vid.h
|
|
120
|
-
- ruby/trema/action-strip-vlan.c
|
|
121
|
-
- ruby/trema/action-strip-vlan.h
|
|
122
|
-
- ruby/trema/action-vendor.c
|
|
123
|
-
- ruby/trema/action-vendor.h
|
|
103
|
+
- ruby/trema/action.rb
|
|
124
104
|
- ruby/trema/aggregate-stats-reply.rb
|
|
125
105
|
- ruby/trema/app.rb
|
|
126
106
|
- ruby/trema/barrier-reply.c
|
|
@@ -145,11 +125,13 @@ files:
|
|
|
145
125
|
- ruby/trema/controller.h
|
|
146
126
|
- ruby/trema/controller.rb
|
|
147
127
|
- ruby/trema/daemon.rb
|
|
128
|
+
- ruby/trema/desc-stats-reply.rb
|
|
148
129
|
- ruby/trema/dsl.rb
|
|
149
130
|
- ruby/trema/dsl/configuration.rb
|
|
150
131
|
- ruby/trema/dsl/context.rb
|
|
151
132
|
- ruby/trema/dsl/link.rb
|
|
152
133
|
- ruby/trema/dsl/parser.rb
|
|
134
|
+
- ruby/trema/dsl/rswitch.rb
|
|
153
135
|
- ruby/trema/dsl/run.rb
|
|
154
136
|
- ruby/trema/dsl/runner.rb
|
|
155
137
|
- ruby/trema/dsl/stanza.rb
|
|
@@ -162,6 +144,9 @@ files:
|
|
|
162
144
|
- ruby/trema/echo-reply.h
|
|
163
145
|
- ruby/trema/echo-request.c
|
|
164
146
|
- ruby/trema/echo-request.h
|
|
147
|
+
- ruby/trema/echo.c
|
|
148
|
+
- ruby/trema/echo.h
|
|
149
|
+
- ruby/trema/enqueue.rb
|
|
165
150
|
- ruby/trema/error.c
|
|
166
151
|
- ruby/trema/error.h
|
|
167
152
|
- ruby/trema/exact-match.rb
|
|
@@ -170,6 +155,8 @@ files:
|
|
|
170
155
|
- ruby/trema/features-reply.h
|
|
171
156
|
- ruby/trema/features-request.c
|
|
172
157
|
- ruby/trema/features-request.h
|
|
158
|
+
- ruby/trema/flow-mod.c
|
|
159
|
+
- ruby/trema/flow-mod.h
|
|
173
160
|
- ruby/trema/flow-removed.c
|
|
174
161
|
- ruby/trema/flow-removed.h
|
|
175
162
|
- ruby/trema/flow-stats-reply.rb
|
|
@@ -178,6 +165,7 @@ files:
|
|
|
178
165
|
- ruby/trema/get-config-reply.h
|
|
179
166
|
- ruby/trema/get-config-request.c
|
|
180
167
|
- ruby/trema/get-config-request.h
|
|
168
|
+
- ruby/trema/hardware-switch.rb
|
|
181
169
|
- ruby/trema/hello.c
|
|
182
170
|
- ruby/trema/hello.h
|
|
183
171
|
- ruby/trema/host.rb
|
|
@@ -187,6 +175,7 @@ files:
|
|
|
187
175
|
- ruby/trema/list-switches-reply.h
|
|
188
176
|
- ruby/trema/logger.c
|
|
189
177
|
- ruby/trema/logger.h
|
|
178
|
+
- ruby/trema/logger.rb
|
|
190
179
|
- ruby/trema/mac.rb
|
|
191
180
|
- ruby/trema/match.c
|
|
192
181
|
- ruby/trema/match.h
|
|
@@ -205,15 +194,18 @@ files:
|
|
|
205
194
|
- ruby/trema/openflow-error.h
|
|
206
195
|
- ruby/trema/openflow-switch.rb
|
|
207
196
|
- ruby/trema/ordered-hash.rb
|
|
197
|
+
- ruby/trema/packet-in.c
|
|
198
|
+
- ruby/trema/packet-in.h
|
|
208
199
|
- ruby/trema/packet-queue.rb
|
|
209
|
-
- ruby/trema/packet_in.c
|
|
210
|
-
- ruby/trema/packet_in.h
|
|
211
200
|
- ruby/trema/packetin-filter.rb
|
|
212
201
|
- ruby/trema/path.rb
|
|
213
202
|
- ruby/trema/phost.rb
|
|
214
203
|
- ruby/trema/port-mod.c
|
|
215
204
|
- ruby/trema/port-mod.h
|
|
216
205
|
- ruby/trema/port-stats-reply.rb
|
|
206
|
+
- ruby/trema/port-status-add.rb
|
|
207
|
+
- ruby/trema/port-status-delete.rb
|
|
208
|
+
- ruby/trema/port-status-modify.rb
|
|
217
209
|
- ruby/trema/port-status.c
|
|
218
210
|
- ruby/trema/port-status.h
|
|
219
211
|
- ruby/trema/port.c
|
|
@@ -224,8 +216,22 @@ files:
|
|
|
224
216
|
- ruby/trema/queue-get-config-request.c
|
|
225
217
|
- ruby/trema/queue-get-config-request.h
|
|
226
218
|
- ruby/trema/queue-stats-reply.rb
|
|
219
|
+
- ruby/trema/ruby-switch.rb
|
|
220
|
+
- ruby/trema/send-out-port.rb
|
|
227
221
|
- ruby/trema/set-config.c
|
|
228
222
|
- ruby/trema/set-config.h
|
|
223
|
+
- ruby/trema/set-eth-addr.rb
|
|
224
|
+
- ruby/trema/set-eth-dst-addr.rb
|
|
225
|
+
- ruby/trema/set-eth-src-addr.rb
|
|
226
|
+
- ruby/trema/set-ip-addr.rb
|
|
227
|
+
- ruby/trema/set-ip-dst-addr.rb
|
|
228
|
+
- ruby/trema/set-ip-src-addr.rb
|
|
229
|
+
- ruby/trema/set-ip-tos.rb
|
|
230
|
+
- ruby/trema/set-transport-dst-port.rb
|
|
231
|
+
- ruby/trema/set-transport-port.rb
|
|
232
|
+
- ruby/trema/set-transport-src-port.rb
|
|
233
|
+
- ruby/trema/set-vlan-priority.rb
|
|
234
|
+
- ruby/trema/set-vlan-vid.rb
|
|
229
235
|
- ruby/trema/shell.rb
|
|
230
236
|
- ruby/trema/shell/down.rb
|
|
231
237
|
- ruby/trema/shell/killall.rb
|
|
@@ -242,37 +248,31 @@ files:
|
|
|
242
248
|
- ruby/trema/stats-reply.h
|
|
243
249
|
- ruby/trema/stats-request.c
|
|
244
250
|
- ruby/trema/stats-request.h
|
|
251
|
+
- ruby/trema/strip-vlan-header.rb
|
|
245
252
|
- ruby/trema/switch-daemon.rb
|
|
246
253
|
- ruby/trema/switch-disconnected.c
|
|
247
254
|
- ruby/trema/switch-disconnected.h
|
|
248
255
|
- ruby/trema/switch-manager.rb
|
|
256
|
+
- ruby/trema/switch.c
|
|
257
|
+
- ruby/trema/switch.h
|
|
249
258
|
- ruby/trema/switch.rb
|
|
250
259
|
- ruby/trema/table-stats-reply.rb
|
|
251
260
|
- ruby/trema/timers.rb
|
|
261
|
+
- ruby/trema/trema-ruby-utils.c
|
|
262
|
+
- ruby/trema/trema-ruby-utils.h
|
|
252
263
|
- ruby/trema/trema.c
|
|
253
264
|
- ruby/trema/tremashark.rb
|
|
254
265
|
- ruby/trema/util.rb
|
|
255
|
-
- ruby/trema/vendor-
|
|
256
|
-
- ruby/trema/vendor-request.h
|
|
266
|
+
- ruby/trema/vendor-action.rb
|
|
257
267
|
- ruby/trema/vendor-stats-reply.rb
|
|
258
268
|
- ruby/trema/vendor.c
|
|
259
269
|
- ruby/trema/vendor.h
|
|
260
270
|
- ruby/trema/version.rb
|
|
261
271
|
- spec/spec_helper.rb
|
|
272
|
+
- spec/support/action.rb
|
|
273
|
+
- spec/support/mandatory-option.rb
|
|
262
274
|
- spec/support/openflow-message.rb
|
|
263
|
-
- spec/
|
|
264
|
-
- spec/trema/action-output_spec.rb
|
|
265
|
-
- spec/trema/action-set-dl-dst_spec.rb
|
|
266
|
-
- spec/trema/action-set-dl-src_spec.rb
|
|
267
|
-
- spec/trema/action-set-nw-dst_spec.rb
|
|
268
|
-
- spec/trema/action-set-nw-src_spec.rb
|
|
269
|
-
- spec/trema/action-set-nw-tos_spec.rb
|
|
270
|
-
- spec/trema/action-set-tp-dst_spec.rb
|
|
271
|
-
- spec/trema/action-set-tp-src_spec.rb
|
|
272
|
-
- spec/trema/action-set-vlan-pcp_spec.rb
|
|
273
|
-
- spec/trema/action-set-vlan-vid_spec.rb
|
|
274
|
-
- spec/trema/action-strip-vlan_spec.rb
|
|
275
|
-
- spec/trema/action-vendor_spec.rb
|
|
275
|
+
- spec/support/port-status.rb
|
|
276
276
|
- spec/trema/app_spec.rb
|
|
277
277
|
- spec/trema/barrier-reply_spec.rb
|
|
278
278
|
- spec/trema/barrier-request_spec.rb
|
|
@@ -288,15 +288,19 @@ files:
|
|
|
288
288
|
- spec/trema/dsl/vswitch_spec.rb
|
|
289
289
|
- spec/trema/echo-reply_spec.rb
|
|
290
290
|
- spec/trema/echo-request_spec.rb
|
|
291
|
+
- spec/trema/enqueue_spec.rb
|
|
291
292
|
- spec/trema/error_spec.rb
|
|
292
293
|
- spec/trema/executables_spec.rb
|
|
293
294
|
- spec/trema/features-reply_spec.rb
|
|
294
295
|
- spec/trema/features-request_spec.rb
|
|
296
|
+
- spec/trema/flow-mod_spec.rb
|
|
295
297
|
- spec/trema/flow-removed_spec.rb
|
|
296
298
|
- spec/trema/get-config-reply_spec.rb
|
|
297
299
|
- spec/trema/get-config-request_spec.rb
|
|
300
|
+
- spec/trema/hardware-switch_spec.rb
|
|
298
301
|
- spec/trema/hello_spec.rb
|
|
299
302
|
- spec/trema/host_spec.rb
|
|
303
|
+
- spec/trema/ip_spec.rb
|
|
300
304
|
- spec/trema/link_spec.rb
|
|
301
305
|
- spec/trema/list-switches-reply_spec.rb
|
|
302
306
|
- spec/trema/logger_spec.rb
|
|
@@ -304,26 +308,42 @@ files:
|
|
|
304
308
|
- spec/trema/match_spec.rb
|
|
305
309
|
- spec/trema/open-vswitch_spec.rb
|
|
306
310
|
- spec/trema/openflow-error_spec.rb
|
|
307
|
-
- spec/trema/openflow-switch_spec.rb
|
|
308
311
|
- spec/trema/packet-in_spec.rb
|
|
309
312
|
- spec/trema/packet-out_spec.rb
|
|
310
313
|
- spec/trema/packetin-filter_spec.rb
|
|
311
314
|
- spec/trema/port-mod_spec.rb
|
|
315
|
+
- spec/trema/port-status-add_spec.rb
|
|
316
|
+
- spec/trema/port-status-delete_spec.rb
|
|
317
|
+
- spec/trema/port-status-modify_spec.rb
|
|
312
318
|
- spec/trema/port-status_spec.rb
|
|
313
319
|
- spec/trema/port_spec.rb
|
|
314
320
|
- spec/trema/process_spec.rb
|
|
315
321
|
- spec/trema/queue-get-config-reply_spec.rb
|
|
316
322
|
- spec/trema/queue-get-config-request_spec.rb
|
|
323
|
+
- spec/trema/send-out-port_spec.rb
|
|
317
324
|
- spec/trema/set-config_spec.rb
|
|
325
|
+
- spec/trema/set-eth-dst-addr_spec.rb
|
|
326
|
+
- spec/trema/set-eth-src-addr_spec.rb
|
|
327
|
+
- spec/trema/set-ip-dst-addr_spec.rb
|
|
328
|
+
- spec/trema/set-ip-src-addr_spec.rb
|
|
329
|
+
- spec/trema/set-ip-tos_spec.rb
|
|
330
|
+
- spec/trema/set-transport-dst-port_spec.rb
|
|
331
|
+
- spec/trema/set-transport-src-port_spec.rb
|
|
332
|
+
- spec/trema/set-vlan-priority_spec.rb
|
|
333
|
+
- spec/trema/set-vlan-vid_spec.rb
|
|
318
334
|
- spec/trema/shell/vhost_spec.rb
|
|
319
335
|
- spec/trema/shell/vswitch_spec.rb
|
|
320
336
|
- spec/trema/stats-reply_spec.rb
|
|
321
337
|
- spec/trema/stats-request_spec.rb
|
|
338
|
+
- spec/trema/strip-vlan-header_spec.rb
|
|
339
|
+
- spec/trema/switch-daemon_spec.rb
|
|
322
340
|
- spec/trema/switch-disconnected_spec.rb
|
|
323
341
|
- spec/trema/switch-manager_spec.rb
|
|
324
342
|
- spec/trema/tremashark_spec.rb
|
|
325
343
|
- spec/trema/util_spec.rb
|
|
326
|
-
- spec/trema/vendor-
|
|
344
|
+
- spec/trema/vendor-action_spec.rb
|
|
345
|
+
- spec/trema/vendor_spec.rb
|
|
346
|
+
- spec/trema_spec.rb
|
|
327
347
|
- src/examples/cbench_switch/README
|
|
328
348
|
- src/examples/cbench_switch/cbench-switch.rb
|
|
329
349
|
- src/examples/cbench_switch/cbench_switch.c
|
|
@@ -403,6 +423,10 @@ files:
|
|
|
403
423
|
- src/lib/byteorder.c
|
|
404
424
|
- src/lib/byteorder.h
|
|
405
425
|
- src/lib/checks.h
|
|
426
|
+
- src/lib/chibach.c
|
|
427
|
+
- src/lib/chibach.h
|
|
428
|
+
- src/lib/chibach_private.c
|
|
429
|
+
- src/lib/chibach_private.h
|
|
406
430
|
- src/lib/daemon.c
|
|
407
431
|
- src/lib/daemon.h
|
|
408
432
|
- src/lib/doubly_linked_list.c
|
|
@@ -417,6 +441,7 @@ files:
|
|
|
417
441
|
- src/lib/icmp.h
|
|
418
442
|
- src/lib/igmp.h
|
|
419
443
|
- src/lib/ipv4.h
|
|
444
|
+
- src/lib/ipv6.h
|
|
420
445
|
- src/lib/linked_list.c
|
|
421
446
|
- src/lib/linked_list.h
|
|
422
447
|
- src/lib/log.c
|
|
@@ -433,6 +458,8 @@ files:
|
|
|
433
458
|
- src/lib/openflow_message.c
|
|
434
459
|
- src/lib/openflow_message.h
|
|
435
460
|
- src/lib/openflow_service_interface.h
|
|
461
|
+
- src/lib/openflow_switch_interface.c
|
|
462
|
+
- src/lib/openflow_switch_interface.h
|
|
436
463
|
- src/lib/packet_info.c
|
|
437
464
|
- src/lib/packet_info.h
|
|
438
465
|
- src/lib/packet_parser.c
|
|
@@ -440,6 +467,8 @@ files:
|
|
|
440
467
|
- src/lib/packetin_filter_interface.h
|
|
441
468
|
- src/lib/persistent_storage.c
|
|
442
469
|
- src/lib/persistent_storage.h
|
|
470
|
+
- src/lib/secure_channel.c
|
|
471
|
+
- src/lib/secure_channel.h
|
|
443
472
|
- src/lib/stat.c
|
|
444
473
|
- src/lib/stat.h
|
|
445
474
|
- src/lib/tcp.h
|
|
@@ -447,6 +476,7 @@ files:
|
|
|
447
476
|
- src/lib/timer.h
|
|
448
477
|
- src/lib/trema.c
|
|
449
478
|
- src/lib/trema.h
|
|
479
|
+
- src/lib/trema.hpp
|
|
450
480
|
- src/lib/trema_private.c
|
|
451
481
|
- src/lib/trema_private.h
|
|
452
482
|
- src/lib/trema_wrapper.c
|
|
@@ -528,6 +558,8 @@ files:
|
|
|
528
558
|
- unittests/lib/stat_test.c
|
|
529
559
|
- unittests/lib/test_packets/arp_rep.cap
|
|
530
560
|
- unittests/lib/test_packets/arp_req.cap
|
|
561
|
+
- unittests/lib/test_packets/icmp6_echo_rep.cap
|
|
562
|
+
- unittests/lib/test_packets/icmp6_echo_req.cap
|
|
531
563
|
- unittests/lib/test_packets/icmp_echo_rep.cap
|
|
532
564
|
- unittests/lib/test_packets/icmp_echo_req.cap
|
|
533
565
|
- unittests/lib/test_packets/igmp_query_v2.cap
|
|
@@ -550,13 +582,14 @@ files:
|
|
|
550
582
|
- unittests/switch_manager/switch_manager_test.c
|
|
551
583
|
- unittests/wrapper_stubs.c
|
|
552
584
|
- vendor/.gitignore
|
|
553
|
-
- vendor/README
|
|
585
|
+
- vendor/README.md
|
|
554
586
|
- vendor/cmockery-20110428.tar.gz
|
|
555
587
|
- vendor/oflops-0.03.tar.gz
|
|
556
588
|
- vendor/oflops_no_snmp+1.0.0.patch
|
|
557
589
|
- vendor/openflow-1.0.0.tar.gz
|
|
558
590
|
- vendor/openflow.git.tar.gz
|
|
559
591
|
- vendor/openvswitch-1.2.2.tar.gz
|
|
592
|
+
- vendor/packet-openflow.diff
|
|
560
593
|
- vendor/phost/doc/COPYING
|
|
561
594
|
- vendor/phost/doc/README
|
|
562
595
|
- vendor/phost/src/.gitignore
|