On 9/25/21 12:19 AM, Lorenzo Bianconi wrote:
> Similar to if-status-mgr, track memory allocated for local_datapath.
>
> Signed-off-by: Lorenzo Bianconi <[email protected]>
> ---
Hi Lorenzo,
> controller/binding.c | 3 +++
> controller/local_data.c | 50 +++++++++++++++++++++++++++++++++++++
> controller/local_data.h | 3 +++
> controller/ovn-controller.c | 1 +
> 4 files changed, 57 insertions(+)
>
> diff --git a/controller/binding.c b/controller/binding.c
> index c037b2352..661b4bb24 100644
> --- a/controller/binding.c
> +++ b/controller/binding.c
> @@ -374,6 +374,8 @@ update_ld_external_ports(const struct sbrec_port_binding
> *binding_rec,
> struct local_datapath *ld = get_local_datapath(
> local_datapaths, binding_rec->datapath->tunnel_key);
> if (ld) {
> + local_datapath_ext_port_mem_update(ld, binding_rec->logical_port,
> + false);
> shash_replace(&ld->external_ports, binding_rec->logical_port,
> binding_rec);
> }
> @@ -1756,6 +1758,7 @@ remove_pb_from_local_datapath(const struct
> sbrec_port_binding *pb,
> ld->localnet_port = NULL;
> }
> } else if (!strcmp(pb->type, "external")) {
> + local_datapath_ext_port_mem_update(ld, pb->logical_port, true);
> shash_find_and_delete(&ld->external_ports, pb->logical_port);
> }
> }
I think the better way of doing this is to add functions to local_data.c
for external ports too. We have something similar for peer ports:
add_local_datapath_peer_port()
remove_local_datapath_peer_port()
We can create new ones in local_data.c:
add_local_datapath_external_port()
remove_local_datapath_external_port()
And also do the memory accounting there. Like that we don't have to
expose local_datapath_ext_port_mem_update(), it can be internal inside
the local_data.c module.
Regards,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev