X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fofproto-dpif-xlate.c;h=45786756c412c54f3c5135280fa293bb8ee137eb;hb=97025b23a71ace7c1e640e37891e7d11a87e83fa;hp=0f4a10c357094b79704747da2e17a6325863c268;hpb=62a7cc71f56ff6a2e943db3d1db238bf7ecd8bc9;p=sliver-openvswitch.git diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index 0f4a10c35..45786756c 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -289,6 +289,12 @@ xlate_remove_ofproto(struct ofproto_dpif *ofproto) } hmap_remove(&xbridges, &xbridge->hmap_node); + mac_learning_unref(xbridge->ml); + mbridge_unref(xbridge->mbridge); + dpif_sflow_unref(xbridge->sflow); + dpif_ipfix_unref(xbridge->ipfix); + stp_unref(xbridge->stp); + hmap_destroy(&xbridge->xports); free(xbridge->name); free(xbridge); } @@ -1631,7 +1637,6 @@ compose_output_action__(struct xlate_ctx *ctx, ofp_port_t ofp_port, out_port = ofp_port_to_odp_port(ctx->xbridge, vlandev_port); flow->vlan_tci = htons(0); } - flow->pkt_mark &= ~IPSEC_MARK; } if (out_port != ODPP_NONE) { @@ -2519,7 +2524,10 @@ actions_output_to_local_port(const struct xlate_ctx *ctx) } /* Translates the 'ofpacts_len' bytes of "struct ofpacts" starting at 'ofpacts' - * into datapath actions in 'odp_actions', using 'ctx'. */ + * into datapath actions in 'odp_actions', using 'ctx'. + * + * The caller must take responsibility for eventually freeing 'xout', with + * xlate_out_uninit(). */ void xlate_actions(struct xlate_in *xin, struct xlate_out *xout) {