Hello all,

Sorry - joining this a little late, but what seems to have been lost in all this Action Set discussion is that there is also the Action List.

Kiran: Why is not possible to use a single table to match on input port and destination IP address and then to use the Action List to add inner label and then the outer label.

According to the spec they will be added in the right order.
The actions of an action list are executed in the
order specified by the list, and are applied immediately to the packet.

This is how we are doing our VPN implementation.

Does your hardware not allow you to match on input port and dest IP at the same time?

Thanks
Saurav


On Apr 18, 2011, at 10:33 AM, Rajiv Ramanathan wrote:



On Mon, Apr 18, 2011 at 9:22 AM, Kiran Yedavalli <[email protected] > wrote: Sure, I agree. In a generalized case, it will get complicated. However, there are many simple case that would require 2 or 3 actions of the same kind in the action set, that are fairly simple to use. But this condition in the spec precludes even these simple case.

Restricting the number of actions of the same kind to 2 or 3 max, instead of 1 as it is currently, the complexity does not increase by much.

- I think you are missing the point that Zoltan brought up. In general, I agree with the issue that you raise (It does seem painful to do a single label per table). - Let's assume you support 2 actions of the same kind in the action set. If you have a push label 1 action in table 0 and another push action 2 in table 1 => What is the ordering of the labels? 1 is inner and 2 is outer? What if I want the order reversed? What if I want only one label inserted and actually want the other label taken out? - The point is that the match would also need look into the "action set" in order to figure out what instructions it needs to run and will need to be able to "edit" the action set (ie use insert at position instructions). This would have made the spec. even more complicated IMO. - Increasing the number of actions to 2 or n would have made no difference in the complications that arise. But if you have proposal that you think will work, I would love to hear it.

Rajiv



From: Rajiv Ramanathan [mailto:[email protected]]
Sent: Friday, April 15, 2011 10:15 AM
To: Zoltán Lajos Kis
Cc: Kiran Yedavalli; [email protected]

Subject: Re: [openflow-discuss] Pushing 2 MPLS labels.

Yes. Zoltan has this exactly right.

On Fri, Apr 15, 2011 at 8:02 AM, Zoltán Lajos Kis <[email protected] m> wrote: The complexity would be in the protocol. The flow entries should be able to tell not only the actions to be written, but also their exact location among the actions already in the list (which are uknown prior to matching), and whether the new actions replace existing ones or not.

Regards,
Zoltan.

From: [email protected] [mailto:[email protected] ] On Behalf Of Kiran Yedavalli
Sent: Friday, April 15, 2011 4:30 PM
To: Rajiv Ramanathan

Cc: [email protected]
Subject: Re: [openflow-discuss] Pushing 2 MPLS labels.

Its pretty complicated to handle multiple actions (if it was an ActionList) because it involves "insertion" of actions in a specific order on a table match.

I think the complexity of implementation should be left to the vendor in this case. There could be many simple cases where there is not much complexity in implementation of this. Taking away this functionality is reducing the flexibility of OF 1.1 implementation as such.


From: Rajiv Ramanathan [mailto:[email protected]]
Sent: Friday, April 15, 2011 3:18 AM
To: Kiran Yedavalli
Cc: [email protected]
Subject: Re: [openflow-discuss] Pushing 2 MPLS labels.



On Thu, Apr 14, 2011 at 5:04 PM, Kiran Yedavalli <[email protected] > wrote: Thanks Rajiv and Dan. Looks like we need metadata in any case for this to work. We initially thought of this, but our platform does not support metadata, so was wondering if there is a way without using metadata. Looks like there is none.

This is no reason not to use metadata. I don't believe your "software" pipeline has to match your "hardware" pipeline. The switch can translate the controller request to push 2 labels on 2 tables to pushing 2 labels on one hardware table. I definitely understand that this could become non-trivial.


Also, what is the reason why Action Set does not support more than one action of the same kind?

Its pretty complicated to handle multiple actions (if it was an ActionList) because it involves "insertion" of actions in a specific order on a table match.


Thanks
Kiran

From: Rajiv Ramanathan [mailto:[email protected]]
Sent: Thursday, April 14, 2011 1:58 PM
To: Kiran Yedavalli
Cc: [email protected]
Subject: Re: [openflow-discuss] Pushing 2 MPLS labels.

A couple of solutions (variations of the same theme) are:

Table 0: match on dest IP, set metadata
Table 1: match on input port, push inner label
Table 3: match on metadata, push outer label

or

Table 0: match on dest IP and input port, set metadata and push inner label
Table 1: match on metadata, push outer labe.


On Thu, Apr 14, 2011 at 10:37 AM, Kiran Yedavalli <[email protected] > wrote:
Hi,

The problem is to push two MPLS labels onto a packet, the inner one based on input port and the outer one based on destination IP address. However, the spec does not allow this in any way. We looked at three options:

Option 1. Match on input port on table 0 and push a MPLS label, next, match on dest IP address in table 1 and push a MPLS label. The spec does not allows this, because we cannot look at the IP address after we push a MPLS label, according to the spec.

Option 2. Match on dest IP address on table 0 and push a MPLS label, next, match on input port in table 1 and push a MPLS label. But in this case, according to the spec, we can only push an outmost label everytime we push. This does not work for us either.

Option 3. Accumlate all actions in the Action Set using the WriteActions Instruction. This does not work either, because the Action Set cannot have more than one of the same kind of action.

Is there any other way of accomplishing this? If not, we think this is a flaw in the spec that does not allow for inserting more than one label.

Thanks
Kiran




_______________________________________________
openflow-discuss mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss




_______________________________________________
openflow-discuss mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss



_______________________________________________
openflow-discuss mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Saurav Das
PhD Candidate
Electrical Engineering
Stanford University
(W) 650 724 3409

_______________________________________________
openflow-discuss mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to