I tried d
oing this,
[image: Inline image 2]
But as shown, it says BAD_ACTION. What is wrong in this case? Please help
me know

On Wed, Apr 8, 2015 at 12:00 PM, Ruchika Luthra <
h2013...@pilani.bits-pilani.ac.in> wrote:

> Can you help me with a suitable example to verify the working of set_field
> action?
>
> On Wed, Apr 8, 2015 at 11:02 AM, Ruchika Luthra <
> h2013...@pilani.bits-pilani.ac.in> wrote:
>
>> Thank you Nicholas.
>>
>> You are quite right. Actually my current point was just to experiment and
>> see if the change done by set_field action can be reflected in the packet.
>> You are right to point out my error about MPLS. I gave the example without
>> thinking for which i apologize.
>> if considering any other field, my point is just to see a packet with the
>> changes reflected on it.
>>
>> On Wed, Apr 8, 2015 at 10:55 AM, Nicholas Bastin <nick.bas...@gmail.com>
>> wrote:
>>
>>> On Tue, Apr 7, 2015 at 10:35 PM, Ruchika Luthra <
>>> h2013...@pilani.bits-pilani.ac.in> wrote:
>>>
>>>> I am trying to modify a header field by using set_action instruction. I
>>>> have been able to successfully add a flow table entry corresponding to
>>>> this. But how can I actually verify if the change has taken place
>>>> successfully in the packet.
>>>>
>>>> I have tried doing this:
>>>>
>>>> sudo dpctl unix:/tmp/s1 flow-mod cmd=add,table=0
>>>> in_port=1,eth_dst=00:00:00:00:00:02 
>>>> apply:output=2,set_field=eth_type=0x8848
>>>>
>>>> The flow table entry has been successfully inserted. But how to make
>>>> sure that the change has been successfully applied?
>>>>
>>>
>>> Primarily the way that you would see this change is via a tap on the
>>> output port or running tcpdump on the end host in question.
>>>
>>> However, what you are asking the datapath to do is undefined, and, by
>>> the rules of the MPLS spec, illegal.  You are asking the datapath to match
>>> any packet incoming on port 1 with a specific destination MAC, and to
>>> change the ethertype of this packet.  How do you imagine this will work?
>>> Obviously the incoming packet has a specific format based on the original
>>> ethertype - do you imagine that the datapath will do whatever magic mapping
>>> is necessary to convert the packet?  It most certainly will not do this -
>>> it will, at best (assuming it does not just drop the packet), simply
>>> overwrite the 16 bits of the ethertype field with your new value,
>>> essentially corrupting your packet.  Also, 0x8848 is reserved for MPLS
>>> packets that are carried in multicast ethernet frames, but your match
>>> specifies a destination MAC address that is *not* multicast and thus would
>>> create a packet that will get dropped by any legacy MPLS hardware in your
>>> path (including host NICs, in a lot of cases).
>>>
>>> Perhaps you need to step back and explain what you are trying to
>>> accomplish at a high level, before asking how very specific things work.
>>>
>>> --
>>> Nick
>>>
>>
>>
>>
>> --
>> Ruchika Luthra
>> M.E (CS) 4th Sem
>> BITS Pilani
>>
>>
>
>
> --
> Ruchika Luthra
> M.E (CS) 4th Sem
> BITS Pilani
>
>


-- 
Ruchika Luthra
M.E (CS) 4th Sem
BITS Pilani
_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to