[ovs-dev] [patch v3] netdev-native-tnl: Fix alignment for erspan index.
Gregory Rose
gvrose8192 at gmail.com
Tue May 22 19:56:51 UTC 2018
On 5/22/2018 10:58 AM, Darrell Ball wrote:
> Flagged by clang.
>
> CC: Greg Rose <gvrose8192 at gmail.com>
> Fixes: 068794b43f0e ("erspan: Add flow-based erspan options")
> Signed-off-by: Darrell Ball <dlu998 at gmail.com>
Adding William...
- Greg
> ---
> lib/netdev-native-tnl.c | 15 ++++++---------
> 1 file changed, 6 insertions(+), 9 deletions(-)
>
> diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
> index c97491e..dd36695 100644
> --- a/lib/netdev-native-tnl.c
> +++ b/lib/netdev-native-tnl.c
> @@ -653,24 +653,21 @@ netdev_erspan_build_header(const struct netdev *netdev,
> }
>
> if (erspan_ver == 1) {
> - ovs_be32 *index;
> -
> greh->protocol = htons(ETH_TYPE_ERSPAN1);
> greh->flags = htons(GRE_SEQ);
> ersh->ver = 1;
> set_sid(ersh, sid);
>
> - put_16aligned_be32(ALIGNED_CAST(ovs_16aligned_be32 *, ersh + 1),
> - htonl(tnl_cfg->erspan_idx));
> -
> - index = (ovs_be32 *)(ersh + 1);
> -
> + void *erspan_hdr_idx = ersh + 1;
> + ovs_be32 erspan_idx;
> if (tnl_cfg->erspan_idx_flow) {
> - *index = htonl(params->flow->tunnel.erspan_idx);
> + erspan_idx = htonl(params->flow->tunnel.erspan_idx);
> } else {
> - *index = htonl(tnl_cfg->erspan_idx);
> + erspan_idx = htonl(tnl_cfg->erspan_idx);
> }
>
> + memcpy(erspan_hdr_idx, &erspan_idx, sizeof erspan_idx);
> +
> hlen = ERSPAN_GREHDR_LEN + sizeof *ersh + ERSPAN_V1_MDSIZE;
> } else if (erspan_ver == 2) {
> struct erspan_md2 *md2 = ALIGNED_CAST(struct erspan_md2 *, ersh + 1);
More information about the dev
mailing list