[ovs-dev] [PATCH v3 7/8] ofproto-dpif: Restore metadata and registers on recirculation.

Ben Pfaff blp at nicira.com
Tue Mar 17 22:52:05 UTC 2015


On Tue, Mar 17, 2015 at 03:06:37PM -0700, Jarno Rajahalme wrote:
> 
> > On Mar 17, 2015, at 2:43 PM, Ben Pfaff <blp at nicira.com> wrote:
> > 
> > On Fri, Mar 13, 2015 at 04:52:00PM -0700, Jarno Rajahalme wrote:
> >> xlate_actions() now considers an optional recirculation context (via
> >> 'xin') and restores OpenFlow pipeline metadata (registers, 'metadata',
> >> etc.) based on it.  The recirculation context may contain an action
> >> set and stack to be restored and further actions to be executed upon
> >> recirculation.  It also contains a table_id number to be used for rule
> >> lookup in cases where no post-recirculation actions are used.
> >> 
> >> The translation context internal metadata is restored using a new
> >> internal action: UNROLL_XLATE action stores the translation context
> >> data visible to OpenFlow controllers via PACKET_IN messages.  This
> >> includes the current table number and the current rule cookie.
> >> UNROLL_XLATE actions are inserted only when the remaining actions may
> >> generate PACKET_IN messages.
> >> 
> >> These changes allow the post-MPLS recirculation to properly continue
> >> with the pipeline metadata that existed at the time of recirculation.
> >> 
> >> The internal table is still consulted for bonds.
> >> 
> >> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> > 
> > Clang says:
> > 
> >    ../ofproto/ofproto-dpif-rid.c:147:29: error: cast from 'const struct ofpact *'
> >          to 'const uint64_t *' (aka 'const unsigned long long *') increases
> >          required alignment from 2 to 4 [-Werror,-Wcast-align]
> >            hash = hash_words64((const uint64_t *)ofpacts,
> >                                ^~~~~~~~~~~~~~~~~~~~~~~~~
> 
> This is due to reverting the ofpact alignment patch in master after I sent this series.
> I have already fixed this on my source code with an ALIGNED_CAST(const uint64_t *, ofpacts).

Oh, that makes sense, thanks.



More information about the dev mailing list