[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