I have attached diffs which includes adding a member to struct flow and 
adjusting FLOW_SIG_SIZE accordingly. This is experimental so I haven't bothered 
to change FLOW_WC_SEQ...

You can patch changes in test_diffs, compile and install ovs. Later program 
following flows

ovs-ofctl add-flow br0
priority=100,idle_timeout=50000,dl_vlan=1,dl_vlan_pcp=0,actions=strip_vlan,1
ovs-ofctl add-flow br0
priority=65535,idle_timeout=50000,dl_type=0x0806,actions=NORMAL
ovs-ofctl add-flow br0
priority=65535,idle_timeout=50000,dl_type=0x8847,actions=1

test.tgz is a small test program which sends out vlan packets. After you 
extract files and compile from test.tgz(ip and mac are hardcoded, you might 
want to change that), you can run it as "./mpls br0 1 0".

Now with the flows programmed, you expect vlan packets to match flow-1 and 
expect counters to increment. It doesn't happen. 

I have debugged the problem and found that "classifier_lookup" which is called 
to get matching rule for a particular flow is NULL and packets later are 
dropped. I played around placing the new variable/member at different offset 
within struct flow and adjusting the size accordingly with varying results. Let 
me know if you need additional information. 

Thanks
Ravi

-----Original Message-----
From: Ethan Jackson [mailto:et...@nicira.com] 
Sent: Tuesday, February 21, 2012 12:39 PM
To: Kerur, Ravi
Cc: dev@openvswitch.org
Subject: Re: [ovs-dev] Q on FLOW_SIG_SIZE and hashing

I can't really figure out what issue you're running into without a
complete patch containing the changes you've made.  The diff you sent
out seems close as an approach.  The only comment I would make is that
we shy away from using __attribute__((packed)).  First thing I would
do is try to get the patch to build without packing the structure.
Once you have that working, if you still see the problem could you
please send a patch and I'll have a look at it?

Ethan

On Tue, Feb 21, 2012 at 11:57,  <ravi.ke...@telekom.com> wrote:
>
> I have already done that i.e changed FLOW_WC_SEQ = 9 and modified related 
> changes where ever necessary. The problem I am facing is that when a new 
> field is added to struct flow or struct flow size is increased by rearranging 
> the fields within it, hashing doesn't work(as mentioned earlier).
>
> The diffs I sent out earlier is just experimental to check if there is a 
> problem with the mpls changes I have done? At least it looked like it is not 
> because in the diffs I have just modified to increase the size of struct flow 
> and see if things work, it doesn't.
>
> Thanks
> Ravi
>
> -----Original Message-----
> From: Ethan Jackson [mailto:et...@nicira.com]
> Sent: Tuesday, February 21, 2012 11:38 AM
> To: Kerur, Ravi
> Cc: dev@openvswitch.org
> Subject: Re: [ovs-dev] Q on FLOW_SIG_SIZE and hashing
>
>> Since the reserved field is used to get full struct flow size to be 64 bits
>> aligned, I believe it can be changed based on FLOW_SIG_SIZE and it doesn't
>> have any other inherent meaning and since it is not used for calculating
>> hash I believe changing reserved size should be ok. Secondly, any other
>> changes I need to do or areas of code to look at to fix this problem?
>
> We included the 'reserved' field because we prefer to have padding in
> structures explicit.  It doesn't have any sort of semantic meaning
> beyond that.  It's totally fine to change it to add additional fields.
>
> Adding an additional field to struct flow is a fairly involved
> process.  You will note at the top of lib/flow.h the 'FLOW_WC_SEQ'
> #define.  This was added to help developers find all the places that
> need to change when either struct flow, or the classifier changes.
> It's not comprehensive, but I would start by incrementing that value
> and seeing where the compiler leads you.
>
> Ethan
>
>
>>
>>
>>
>> Thanks
>>
>> Ravi
>>
>>
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev
>>

Attachment: test_diffs
Description: test_diffs

Attachment: test.tgz
Description: test.tgz

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to