blob: ceb723a8bc67e8c58c6177496ff4f8e0b6d60cb4 [file] [log] [blame]
ShreyaPandita9a24b342012-09-27 15:05:13 -04001******Conformance Test-suite**************************
2OF-Switch-1.0.0-TestCases detailed testing methodology
3
4
5##### Openflow protocol messages ######################
6
71. Features Request
8
9Test Description: Check features request is implemented
10Test mode: Automated
11Test Title: features_request
12Ports: I (Control Plane)
13Initial State: Default (Clear switch state), Connection Setup
14Test-Field: Mandatory
15
16Test Notes:
17a) Send OFPT_FEATURES_REQUEST from controller.
18c) Verify OFPT_FEATURES_REPLY is received without errors
19
20
212. Configuration request
22
23Test Description: Check basic get configuration request is implemented
24Test mode: Automated
25Test Title: configuration_request
26Ports: I (Control Plane)
27Initial State: Default (Clear switch state), Connection Setup
28Test-Field: Mandatory
29
30Test Notes:
31a) Send OFPT_GET_CONFIG_REQUEST
32c) Verify OFPT_GET_CONFIG_REPLY is received without errors.
33
34
353. Modify State (ADD)
36
37Test Description: Check basic Flow ADD request is implemented
38Test mode: Automated
39Test Title: modify_state_add
40Ports: 3 (1 Control Plane 2 dataplane)
41Initial State: Default (Clear switch state), Connection Setup
42Test-Field: Mandatory
43
44Test Notes:
45a) Send OFPT_FLOW_MOD, command = OFPFC_ADD
46b) Send ofp_table_stats request
47c) Verify that active_count=1 in the reply
48
494. Modify State (DELETE)
50
51Test Description: Check basic Flow Delete request is implemented
52Test mode: Automated
53Test Title: modify_state_delete
54Ports: 3 (1 Control Plane 2 dataplane)
55Initial State: Default (Clear switch state), Connection Setup
56Test-Field: Mandatory
57
58Test Notes:
59a) Send OFPT_FLOW_MOD, command = OFPFC_ADD
60b) Send ofp_table_stats request
61c) Verify that active_count=1 in the reply
62d) Send OFPT_FLOW_MOD, command = OFPFC_DELETE
63e) Send ofp_table_stats request
64f) Verify active _count=0 in the reply
65
665. Modify State (MODIFY)
67
68Test Description: Check basic Flow Modify request is implemented
69Test mode: Automated
70Test Title: modify_state_modify
71Ports: 3 (1 Control Plane and 2 Dataplane)
72Initial State: Default (Clear switch state), Connection Setup
73Test-Field: Mandatory
74
75Test Notes:
76a) Send OFPT_FLOW_MOD , command = OFPFC_ADD, action A
77b) Send ofp_table_stats request, Verify active_count=1
78c) Send OFPT_FLOW_MOD , command = OFPFC_MODIFY, action A’
79d) Send Test Packet matching the flow
80e) Verify packet implements action A’
81
82
83
846. Read State
85
86Test Description: Check basic Read State is implemented
87Test mode: Automated
88Test Title: read_state
89Ports: 3 (1 Control Plane, 2 dataplane)
90Initial State: Default (Clear switch state), Connection Setup
91Test-Field: Mandatory
92
93Test Notes:
94a) Send OFPT_FLOW_MOD, command = OFPFC_ADD
95b) Create a OFPC_FLOW_STATS message and send it
96c) Verify switch replies without errors
97
987. Send packet
99
100Test Description: Check basic Send-Packet is implemented.
101Send-Packet: These are used by the controller to send packets out of a specified port on the switch.
102Test mode: Automated
103Test Title: send_packet
104Ports: 5 (1 Control Plane, 4 Dataplane)
105Initial State: Default (Clear switch state), Connection Setup
106Test-Field: Mandatory
107
108
109Test Notes:
110a) Send OFPT_PACKET_OUT out message from controller to switch for every dataplane port.
111b) Verify the packet appears on the each dataplane port
112c) Verify sent packet matches the received packet
113
1148. Barrier Request
115
116Test Description: This test checks that a basic barrier request does not generate an error.
117Test mode: Automated
118Test Title: barrier_request_reply
119Ports: I (Control Plane)
120Initial State: Default (Clear switch state), Connection Setup
121Test-Field: Mandatory
122
123Test Notes:
124
125a) Send OFPT_BARRIER_REQUEST
126c) Verify OFPT_BARRIER_REPLY is received on the control plane.
127
128
1299. Packet In
130
131Test Description: Check packet_in is implemented. This test just checks that non matched dataplane packets generate a packet_in
132Test mode: Automated
133Test Title: packet_In
134Ports: 2 (1 Control Plane and 1 Dataplane)
135Initial State: Default (Clear switch state), Connection Setup
136Test-Field: Mandatory
137
138Test Notes:
139a) Send a packet to dataplane port , without inserting a flow entry
140b) Verify a OFPT_PACKET_IN is generated on the control plane
141
142
14310. Hello
144
145Test Description: This test checks for basic Hello message generation with correct version field.
146Test mode: Automated
147Test Title: hello
148Ports: 1 (Control Plane)
149Initial State: Default (Clear switch state), Connection Setup
150Test-Field: Mandatory
151
152Test Notes:
153a) Send OFPT_HELLO from controller to switch
154b) Verify switch also sends OFPT_HELLO message in response
155c) Verify version field in the hello message is set to Openflow version 1.0.0
156
15711. Echo
158
159Test Description: This test checks for basic Echo Reply message generation with correct version field with same transaction id.
160Test mode: Automated
161Test Title: echo_without_body
162Ports: 1 (Control Plane)
163Initial State: Default (Clear switch state), Connection setup
164Test-Field: Mandatory
165
166Test Notes:
167a) Send OFPT_ECHO_REQUEST from the controller side.
168b) Verify switch responds back with OFPT_ECHO_REPLY with same xid.
169c) Verify Openflow version in header is set to Openflow version 1.0.0.
170
171
172
173############# Detailed controller to switch messages ##################################
174
1751. Overlap checking
176
177Test Description: Verify that if overlap check flag is set in the flow entry and an overlapping flow is inserted then an error is generated and switch refuses flow entry
178Test mode: Automated
179Test Title: overlap_checking
180Ports: 3 (1 Control Plane 2 dataplane)
181Initial State: Default (Clear switch state), Connection setup
182Test-Field: Mandatory
183
184Test-Notes:
185
186a) Generate Flow F1--> Wildcard All
187b) Send ofp_table_stats request , verify active_count=1
188c) Generate overlapping flow F2 --> Wildcard All Except Ingress Port ( with flag OFPFF_CHECK_OVERLAP set)
189d) Verify that switch generates OFPT_ERROR msg.
190Type: OFPET_FLOW_MOD_FAILED code : OFPFMFC_OVERLAP
191
1922. No overlap checking
193
194Test Description: Verify that without overlap check flag set, overlapping flows can be created.
195Test mode: Automated
196Test Title: no_overlap_checking
197Ports: 3 (1 Control Plane, 2 Dataplane)
198Initial State: Default (Clear switch state), Connection setup
199Test-Field: Mandatory
200
201Test Notes:
202
203a) Generate Flow F1--> Wildcard All.
204b) Send ofp_table_stats request , verify active_count=1
205e) Generate overlapping flow F2 --> Wildcard All Except Ingress Port ( without flag OFPFF_CHECK_OVERLAP set)
206c) Send a ofp_table_stats request, verify active_count=2
207
2083. Identical flows
209
210Test Description: Verify that adding two identical flows overwrites the existing one and clears counters
211Test mode: Automated
212Test Title: identical_flows
213Ports: 3 (1 Control Plane), (2 dataplane)
214Initial State: Default (Clear switch state), Connection setup
215Test-Field: Mandatory
216
217Test Notes:
218
219a) Generate Flow F1.
220b) Send ofp_table_stats request , verify active_count=1
221b) Increment counters (packet_count, byte_count) by sending a packet matching flow F1.
222C) Send ofp_flow_stats request. Verify flow counters: byte_count and packet_count
223c) Create identical flow F2
224d) Send a ofp_table_stats request, verify active_count=1
225e) Send ofp_flow_stats request. Verify flow counters: byte_count and packet_count are reset
226
227
228
2294. No table to add (Written in oftest—Need to add to conformance Test-Suites)
230
2315. Never valid port (TBD)
232
2336. Currently not existing port Version A and B (TBD)
234
2357. Emergency flow with timeout values
236
237Test Description: Timeout values are not allowed for emergency flows
238Test Title: emer_flow_with_timeout
239Test mode: Automated
240Ports: 3 (1 control plane, 2 Dataplane)
241Initial State: Default (Clear switch state), Connection setup
242
243Test Notes:
244
245a) Generate a flow F with OFPFF_EMERG set in flag and timeout values assigned.
246b) Verify switch generates an OFPT_ERROR msg, Type: OFPET_FLOW_MOD_FAILED, Code OFPFMFC_BAD_EMERG_TIMEOUT
247
248
2498. Missing modify adds
250
251Test Description: If a modify does not match an existing flow, the flow gets added.
252Title: missing_modify_add
253Test mode: Automated
254Ports:3 (1 control plane,2 Data Plane)
255Initial State: Connection setup, Clear Switch State
256Test-Field: Mandatory
257
258Test Notes:
259
260a) Generate a flow-mod , command OFPC_MODIFY (Note: There should be no flows matching this flow_mod modify command)
261b) Send a ofp_table_stats request, verify active_count=1
262
2639. Modify changes action, preserves counters
264
265Test Description: A modified flow preserves counters
266Title: modify_action
267Test mode: Automated
268Ports: 4(1 control plane, 3 Dataplane)
269Initial State: Connection setup, Clear Switch State
270Test-Field: Mandatory
271
272Test Notes:
273
274a) Create a flow_mod F-1 with command OFPC_ADD, action A
275b) Send a test Packet matching the flow
276c) Send an ofp_flow_stats request, verify byte_count and packet_count
277e) Create flow_mod with command OFPC_MODIFY ,action A’ and modify action of flow F-1
278f) Send a ofp_flow_stats request, verify flow counters are preserved
279g) Send test packet, verify it implements action A’
280
281
28210. Strict Modify changes action, preserves counters
283
284Test Description: Strict Modify Flow also changes action preserves counters
285Title: strict_modify_action
286Test mode: Automated
287Ports: 4(1 control plane, 3 Dataplane)
288Initial State: Connection setup, Clear Switch State
289Test-Field: Mandatory
290
291Test Notes:
292
293a) Create two overlapping flows: F --> Match on all, except one wildcarded (src address). Action A. Priority=100
294F’ --> Match on ingress_port = port [0], wildcarded rest. Action A. Priority=10
295b) Send a ofp_table_stats request, verify active_count=2
296c) Send Packet (it would have matched both the flows, since they are overlapping flows but it would match Flow-F1 as it has higher priority.)
297d) Send ofp_flow_stats request for Flow-1 and verify counters packet_count and byte_count
298e) Create flow_mod ,command OFPC_STRICT_MODIFY,match on all except src address ,priority 100 action A’
299f) Send test packet , verify action is modified
300g) Send ofp_flow_stats request, verify counters are preserved.
301
30211. Delete non existing flow
303
304Test Description: Request deletion of non-existing flow
305Title: delete_nonexisting_flow
306Test mode: Automated
307Ports: 1(1 control plane)
308Initial State: Connection setup, Clear Switch State
309Test-Field: Mandatory
310
311Test Notes:
312
313a) Issue a delete command, with no flows inserted
314b) Make sure no error is generated on the control plane
315
31612. Delete flows with and without removed message
317
318Test Description: Check deletion of flows happens and generates messages as configured.
319I.e. if ‘Send Flow removed message’ Flag is set in the flow entry, the flow deletion of that respective flow should generate the flow removed message, vice versa also exists
320Test Title: Send_Flow_Rem
321Test mode: Automated
322Ports: 3 (1 control plane, 2 Dataplane)
323Initial State: Connection setup, Default (clear switch state)
324Test-Field: Mandatory
325
326Test Notes:
327
328a) Generate a flow F without OFPFF_SEND_FLOW_REM flag set
329b) Issue a delete command OFPFC_DELETE
330c) Verify that OFPT_FLOW_REMOVED message is not generated.
331c) Generate a flow F’ with OFPFF_SEND_FLOW_REM flag set
332d) Issue a delete command OFPFC_DELETE
333e) Verify that OFPT_FLOW_REMOVED message is generated
334
335
336
33713. Delete emergency flow
338
339Test Description: Delete emergency flow and verify no message is generated.
340An emergency flow deletion will not generate flow-removed messages even if ‘Send Flow removed message’ flag was set during the emergency flow entry.
341Title: delete_emer_flow
342Test mode: Automated
343Ports: 3 (1 control plane, 2 Dataplane)
344Initial State: Connection setup, Clear Switch State (default)
345
346Test-Notes:
347
348a) Insert a flow with OFPFF_EMERG flag set.
349b) Delete the added flow with OFPFF_SEND_FLOW_REM flag set
350c) Test successful if no flow removed message is generated.
351
352
35314. Delete and verify strict and non-strict
354
355Test Description: Delete and verify strict and non-strict behaviors
356This test compares the behavior of delete strict and non-strict.
357Title: delete_strict_nonstrict
358Test mode: Automated
359Ports: 3 (1 control plane, 2 dataplane)
360Initial State: Connection setup, Clear Switch State
361
362Test-Notes:
363
364a) Insert Flow F with an exact match.
365b) Issue Non-strict Delete command, verify F gets deleted.
366c) Insert F with an exact Match
367d) Issue Strict Delete Command, verify F gets deleted.
368e) Insert Flow T with match on all, except one wildcarded (say src address).
369f) Insert another flow T' with match on ingress_port, wildcarded rest.
370g) Issue Non-strict Delete ( match on ingress_port). Verify T+T' gets deleted.
371h) Insert T and T' again. Issue Strict Delete (match on ingress port), verify only T' gets deleted
372i) Insert T, add Priority P (say 100)
373j) Insert T' add priority (200).
374k) Insert T' again add priority 300 --> T”
375l) Issue Non-Strict Delete (match on ingress port). Verify T+T’+T’’ gets deleted.
376m) Insert T, T’, T’’ again, Issue Strict Delete (match on ingress_port) with priority = 200. Verify only T’ gets deleted
377
378
37915. Delete flows with constraint out_port
380
381Test Description: Delete flows filtered by action output
382DELETE and DELETE STRICT commands can be optionally filtered by output port. If the out_port field contains a value other than OFPP_NONE, it introduces a constraint when matching. This constraint is that the rule must contain an output action directed at that port.
383
384Title: delete_with_outport
385Test mode: Automated
386Ports: 3 (1 control plane, 2 Dataplanes)
387Initial State: Connection setup, Clear Switch State
388Test-Field: Mandatory
389
390Test-Notes:
391
392a) Insert a flow F with output action = port x
393b) Send a delete command matching flow F ,but out_port =port y
394c) Send a table_stats request , verify no flow gets deleted i.e. active_count=1
395d) Send a delete command matching flow F ,outport = port x
396e) Send a table_stats request, verify flow F gets deleted.
397
398
39916. Add, modify flows with constraint output
400
401Test Description: Add, modify flows with outport set. This field is ignored by ADD, MODIFY, and MODIFY STRICT messages.
402Title: add_modify_with_outport
403Test mode: Automated
404Ports: 4 (1 control plane, 3 Data planes)
405Initial State: Connection setup, Clear Switch State
406Test-Field: Mandatory
407
408Test-Notes:
409
410a) Insert a flow F with action A (output --> port x) , but out_port field in the flow mod set as port y
411b) Send Table_Stats_Request, Verify Flow gets inserted. ( Flow add ignores out_port field)
412c) Modify the action in flow F , action A’ ( output -->port z ), but out_port field in the flow mod set as port y
413d) Send test packet matching the flow F
414e) Verify packet implements action A’ (flow modify ignores out_port field)
415
41617. Verify that idle timeout is implemented
417
418
419Test Description: Verify that idle timeout is implemented
420Title: idle_timeout
421Test mode: Automated
422Ports: 3 (1 control plane, 2 Dataplanes)
423Initial State: Connection setup, Clear Switch State
424Test-Field: Mandatory
425
426Test-Notes:
427
428a) Add a flow with idle timeout set and with OFPP_SEND_FLOW_REM bit set
429b) Verify flow removed message is received.
430c) Verify flow removed reason was idle_timeout
431d) Verify the duration_sec field is 1 sec
432
433
43418. Verify that hard timeout is implemented
435
436Test Description: Verify that hard timeout is implemented
437Title: hard_timeout
438Test mode: Automated
439Ports: 3 (1 control plane, 2 Dataplanes)
440Initial State: Connection setup, Clear Switch State
441Test-Field: Mandatory
442
443Test-Notes:
444
445a) Add a flow with hard timeout =1 set and with OFPP_SEND_FLOW_REM bit set
446b) Verify flow removed message is received.
447c) Verify flow removed reason was hard_timeout
448d) Verify the duration_sec field is 1 sec
449
45019. Verify that messages are generated as expected
451
452Test Description: Verify that Flow removed messages are generated as expected
453Since “flow removed messages being generated when flag is set” is already tested in the above tests
454So here, we test the vice-versa condition.
455Title: flow_timeout
456Test mode: Automated
457Ports: 3 (1control plane, 1dataplane)
458Initial State: Connection setup, Clear Switch State
459Test-Field: Mandatory
460
461Test-Notes:
462
463a) Generate and install a flow with idle_timeout = 1 set no OFPFF_SEND_FLOW_REM flag set.
464b) Verify no flow removed message is received.
465c) Send table_stats_request message and verify active_count=0
466
467
468
469
470################# Actions #####################################################################
471
4721. No Action drops packet
473
474Test Description: If no forward actions are present, the packet is dropped.
475Required Action: Drop.
476A flow-entry with no specified action indicates that all matching packets should be dropped.
477Test mode: Automated
478Test Title: no_action_drop
479Ports: 3 (1 Control Plane 2 Dataplane)
480Initial State: Default (Clear switch state), Connection setup
481Test-Field: Mandatory
482
483Test Notes:
484a) Send Flow mod message without any action specified
485b) Send N packets matching the flow
486c) Verify packets are not received on any of the dataplane ports
487d) Verify packets are not even sent to the controller
488
4892. Get supported actions from switch
490
491Test Description: Get the supported actions from switch and make sanity checks.
492When connecting to the controller, a switch indicate which of the “Optional Actions” it supports
493Test mode: Automated
494Test Title: announcement
495Ports: 1 (Control Plane)
496Initial State: Default (Clear switch state), Connection setup
497Test-Field: Mandatory
498
499Test Notes:
500a) Send features_request .
501b) Verify response is OFPT_FEATURES_REPLY
502c) Verify reply has supported action list specified
503
504
505
5063. Forward All
507
508Test Description: Packet is sent to all dataplane ports except ingress port when output action.port = OFPP_ALL
509Test mode: Automated
510Test Title: forward_all
511Ports: 3 (1 Control Plane 2 Dataplane)
512Initial State: Default (Clear switch state), Connection setup
513Test-Field: Mandatory
514
515
516Test Notes:
517
518 a) Install a flow with output action.port = OFPP_ALL.
519 b) Verify packets are forwarded to all ports except ingress port.
520
521
5224. Forward Controller
523Test Description: Packet is sent to controller output.port = OFPP_CONTROLLER
524Test mode: Automated
525Test Title: forward_controller
526Ports: 3 (1 Control Plane 2 Dataplane)
527Initial State: Default (Clear switch state), Connection setup
528Test-Field: Mandatory
529
530
531Test Notes:
532
533a) Insert a flow with action output port = OFPP_CONTROLLER
534b) Send packets matching the flow
535c) Verify packet received on the control plane as a packet_in message
536
537
5385. Forward Local (TBD – Verification of packet being received at local networking stack)
539
540Test Description: Packet is sent to switch’s local networking stack if output.port = OFPP_LOCAL
541Test mode: Automated
542Test Title: forward_local
543Ports: 3 (1 Control Plane 2 Dataplane)
544Initial State: Default (Clear switch state), Connection setup
545Test-Field: Mandatory
546
547
548Test Notes:
549
550a) Insert a flow with action output port = OFPP_LOCAL
551b) Send packets matching the flow
552c) Verify packet received in the switch’s local networking stack.
553
5546. Forward Table
555
556Test Description: Perform actions in flow table. Only for packet-out messages.
557If the output action.port in the packetout message = OFP.TABLE, then the packet implements the action specified in the matching flow of the FLOW-TABLE
558Test mode: Automated
559Test Title: forward_table
560Ports: 3 (1 Control Plane 2 Dataplane)
561Initial State: Default (Clear switch state), Connection setup
562Test-Field: Mandatory
563
564Test Notes:
565
566a) Insert a flow F with action output.port = egress_port
567b) Send a OFPT_PACKET_OUT message with out port=OFPP_TABLE matching flow F
568c) Verify packet received on egress_port (i.e packetout message implemented the action specified in the matching flow of the Table)
569
570
5717. Forward In Port
572
573Test Description: Packet is sent to input port if output.port = OFPP_INPORT
574Test mode: Automated
575Test Title: forward_inport
576Ports: 3 (1 Control Plane 2 Dataplane)
577Initial State: Default (Clear switch state), Connection setup
578Test-Field: Mandatory
579
580Test Notes:
581
582a) Insert a flow with action output port = OFPP_INPORT
583b) Send packets matching the flow
584c) Verify packet received on all dataplane ports except for input port
585
586
5878. Forward Flood
588
589Test Description: FLOOD: Flood the packet along the minimum spanning tree, not including the incoming interface.
590Packet is sent all the dataplane ports except the input port if output.port = OFPP_FLOOD
591Test mode: Automated
592Test Title: forward_flood
593Ports: 3 (1 Control Plane 2 Dataplane)
594Initial State: Default (Clear switch state), Connection setup
595Test-Field: Optional
596
597Test Notes:
598
599a) Insert a flow with action output port = OFPP_FLOOD
600b) Send packets matching the flow
601c) Verify packet received on all dataplane ports except for input port
602
6039. Multiple Ports -- TBD
604
60510. Forward Enqueue --- TBD
606
607
60811. Set VLAN Id
609
610Test Description: Attach VLAN ID to untagged packet
611If no VLAN is present, a new header is added with the specified VLAN ID and priority of zero.
612Test mode: Automated
613Test Title: add_vlan_id
614Ports: 3 (1 Control Plane 2 Dataplane)
615Initial State: Default (Clear switch state), Connection setup
616Test-Field: Optional
617
618
619Test Notes:
620
621a) Insert a flow with action = OFPAT_SET_VLAN_VID , vlan_vid = x
622b) Send packet (length = 100 bytes) matching the flow
623b) Verify packet received has vlan id added to it. (I.e length of packet with vid is 104 bytes, dl_vlan_enable = True, dl_vlan= x, dl_vlan_pcp=0)
624
62512. Modify VLAN Id
626
627Test Description: Modifies Vlan Tag for a tagged packet
628If a VLAN header already exists, the VLAN ID is replaced with the specified value
629Test mode: Automated
630Test Title: modify_vlan_id
631Ports: 3 (1 Control Plane 2 Dataplane)
632Initial State: Default (Clear switch state), Connection setup
633Test-Field: Optional
634
635
636Test Notes:
637a) Insert a flow with action = OFPAT_SET_VLAN_VID , vlan_vid = x
638b) Send packet (length = 100 bytes) matching the flow
639c) Verify packet received has vlan id rewritten. (I.e length of 104 bytes, dl_vlan_enable = True, dl_vlan=x)
640
641
64213. Add VLAN Priority to an untagged packet
643
644Test Description: Attach VLAN priority to an untagged packet.
645Since, no VLAN ID is present; a new header is added with the specified priority and a VLAN ID of zero.
646Test mode: Automated
647Test Title: vlan_prio_untagged
648Ports: 3 (1 Control Plane 2 Dataplane)
649Initial State: Default (Clear switch state), Connection setup
650Test-Field: Optional
651
652
653Test Notes:
654
655a) Insert a flow with action = OFPAT_SET_VLAN_PCP , dl_vlan_pcp =x
656b) Send untagged packet matching the flow
657c) Verify packet received has vlan priority added to it along with a vid value of zero added by default (dl_vlan_enable , dl_vlan = 0 , dl_vlan_pcp =x )
658
65914. Rewrite existing VLAN priority
660
661Test Description: Modify VLAN priority for a tagged packet.
662Test mode: Automated
663Test Title: modify_vlan_prio
664Ports: 3 (1 Control Plane 2 Dataplane)
665Initial State: Default (Clear switch state), Connection setup
666Test-Field: Optional
667
668
669Test Notes:
670
671a) Insert a flow with action = OFPAT_SET_VLAN_PCP , dl_vlan_pcp =new_vlan_pcp
672b) Send tagged packet matching the flow (dl_vlan = old_vlan_id , dl_vlan_pcp = old_vlan_pcp)
673c) Verify packet received has vlan id added to it. (dl_vlan_enable , dl_vlan = 0 , dl_vlan_pcp = new_vlan_pcp)
674
675
676
677
67815. Modify L2 Src Address
679
680Test Description: Modify Ethernet Src Address of a packet
681Test mode: Automated
682Test Title: modify_l2_src
683Ports: 3 (1 Control Plane 2 Dataplane)
684Initial State: Default (Clear switch state), Connection setup
685Test-Field: Optional
686
687
688Test Notes:
689a) Insert a flow with action = OFPAT_SET_DL_SRC , dl_src =new_dl_src
690b) Send packet matching the flow (dl_dst = old_dl_src )
691c) Verify packet received has src address rewritten. (dl_src= new_dl_src)
692
693
694
69516. Modify L2 Destination Address
696
697Test Description: Modify Ethernet Destination Address of a packet
698Test mode: Automated
699Test Title: modify_l2_dst
700Ports: 3 (1 Control Plane 2 Dataplane)
701Initial State: Default (Clear switch state), Connection setup
702Test-Field: Optional
703
704
705Test Notes:
706a) Insert a flow with action = OFPAT_SET_DL_DST , dl_dst =new_dl_dst
707b) Send packet matching the flow (dl_dst = old_dl_src )
708c) Verify packet received has destination address rewritten. (dl_src= new_dl_src)
709
71017. Strip VLAN header – (In oftest, need to add in conformance test-suite )
711
712
71318. Modify L3 Src Address
714
715Test Description: Modify Network Src Address of a packet
716Test mode: Automated
717Test Title: modify_l3_src
718Ports: 3 (1 Control Plane 2 Dataplane)
719Initial State: Default (Clear switch state), Connection setup
720Test-Field: Optional
721
722
723Test Notes:
724a) Insert a flow with action = OFPAT_SET_NW_SRC , nw_src =new_nw_src
725b) Send packet matching the flow (nw_src = old_nw_src )
726c) Verify packet received has nw address rewritten. (nw_src= new_nw_src)
727
728
729
730
731
732
733
73419. Modify L3 Dst Address
735
736Test Description: Modify Network Dst Address of a packet
737Test mode: Automated
738Test Title: modify_l3_dst
739Ports: 3 (1 Control Plane 2 Dataplane)
740Initial State: Default (Clear switch state), Connection setup
741Test-Field: Optional
742
743
744Test Notes:
745a) Insert a flow with action = OFPAT_SET_NW_DST , nw_dst =new_nw_dst
746b) Send packet matching the flow (nw_dst = old_nw_dst )
747c) Verify packet received has nw destination address rewritten. (nw_dst= new_nw_dst)
748
749
750
751
75220. Modify L4 Src Address
753
754Test Description: Modify TCP Source Port of a packet
755Test mode: Automated
756Test Title: modify_l4_src
757Ports: 3 (1 Control Plane 2 Dataplane)
758Initial State: Default (Clear switch state), Connection setup
759Test-Field: Optional
760
761
762Test Notes:
763a) Insert a flow with action = OFPAT_SET_TP_SRC , tcp_sport =new_tcp_sport
764b) Send packet matching the flow (tcp_sport = old_tcp_sport )
765c) Verify packet received has tcp source port rewritten. (tcp_sport = new_tcp_sport)
766
767
76821. Modify L4 Dst Address
769
770Test Description: Modify TCP Destination Port of a packet
771Test mode: Automated
772Test Title: modify_l4_dst
773Ports: 3 (1 Control Plane 2 Dataplane)
774Initial State: Default (Clear switch state), Connection setup
775Test-Field: Optional
776
777
778Test Notes:
779a) Insert a flow with action = OFPAT_SET_TP_DST , tcp_dport =new_tcp_dport
780b) Send packet matching the flow (tcp_dport = old_tcp_dport )
781c) Verify packet received has tcp destination port rewritten. (tcp_sport = new_tcp_sport)
782
783
784
78522. Modify TOS
786
787Test Description: Modify Network Type of service
788Test mode: Automated
789Test Title: modify_tos
790Ports: 3 (1 Control Plane 2 Dataplane)
791Initial State: Default (Clear switch state), Connection setup
792Test-Field: Optional
793
794
795Test Notes:
796a) Insert a flow with action = OFPAT_SET_NW_TOS, ip_tos =new_ip_tos
797b) Send packet matching the flow (ip_tos= old_ip_tos)
798c) Verify packet received has tcp destination port rewritten. (ip_tos= new_ip_tos)
799
800
80123. Order Not possible -- TBD
802
80324. Sequential execution -- TBD
804