Oops, seems like a long weekend :-)

Pushed to master,

  Jarno

On Sep 19, 2014, at 5:04 PM, Jarno Rajahalme <jrajaha...@nicira.com> wrote:

> Thanks Daniele!
> 
> Acked-by: Jarno Rajahalme <jrajaha...@nicira.com>
> 
> I’ll push this on Monday, have a nice weekend :-)
> 
>  Jarno
> 
> On Sep 19, 2014, at 4:30 PM, Daniele Di Proietto <ddiproie...@vmware.com> 
> wrote:
> 
>> Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com>
>> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>
>> ---
>> This is based on a previous patch by Jarno
>> ---
>> lib/dpif-netdev.c |  9 +--------
>> lib/flow.h        | 13 +++++++++++++
>> 2 files changed, 14 insertions(+), 8 deletions(-)
>> 
>> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
>> index 90fe01c..20d2cd2 100644
>> --- a/lib/dpif-netdev.c
>> +++ b/lib/dpif-netdev.c
>> @@ -90,16 +90,9 @@ static struct vlog_rate_limit upcall_rl = 
>> VLOG_RATE_LIMIT_INIT(600, 600);
>> 
>> /* Stores a miniflow with inline values */
>> 
>> -/* There are fields in the flow structure that we never use. Therefore we 
>> can
>> - * save a few words of memory */
>> -#define NETDEV_KEY_BUF_SIZE_U32 (FLOW_U32S                 \
>> -                                 - MINI_N_INLINE           \
>> -                                 - FLOW_U32_SIZE(regs)     \
>> -                                 - FLOW_U32_SIZE(metadata) \
>> -                                )
>> struct netdev_flow_key {
>>    struct miniflow flow;
>> -    uint32_t buf[NETDEV_KEY_BUF_SIZE_U32];
>> +    uint32_t buf[FLOW_MAX_PACKET_U32S - MINI_N_INLINE];
>> };
>> 
>> /* Exact match cache for frequently used flows
>> diff --git a/lib/flow.h b/lib/flow.h
>> index 2764916..b4f417c 100644
>> --- a/lib/flow.h
>> +++ b/lib/flow.h
>> @@ -138,6 +138,19 @@ BUILD_ASSERT_DECL(sizeof(struct flow) % 4 == 0);
>> 
>> #define FLOW_U32S (sizeof(struct flow) / 4)
>> 
>> +/* Some flow fields are mutually exclusive or only appear within the flow
>> + * pipeline.  IPv6 headers are bigger than IPv4 and MPLS, and IPv6 ND 
>> packets
>> + * are bigger than TCP,UDP and IGMP packets. */
>> +#define FLOW_MAX_PACKET_U32S (FLOW_U32S                                   \
>> +    /* Unused in datapath */  - FLOW_U32_SIZE(regs)                       \
>> +                              - FLOW_U32_SIZE(metadata)                   \
>> +    /* L2.5/3 */              - FLOW_U32_SIZE(nw_src)                     \
>> +                              - FLOW_U32_SIZE(nw_dst)                     \
>> +                              - FLOW_U32_SIZE(mpls_lse)                   \
>> +    /* L4 */                  - FLOW_U32_SIZE(tcp_flags) /* incl. pad. */ \
>> +                              - FLOW_U32_SIZE(igmp_group_ip4)             \
>> +                             )
>> +
>> /* Remember to update FLOW_WC_SEQ when changing 'struct flow'. */
>> BUILD_ASSERT_DECL(offsetof(struct flow, dp_hash) + sizeof(uint32_t)
>>                  == sizeof(struct flow_tnl) + 176
>> -- 
>> 2.1.0.rc1
>> 
> 

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

Reply via email to