diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2020-09-11 15:59:27 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-11 15:59:27 -0300 |
| commit | 2525fc315a57bb2e9009da83227bf1912ed8759c (patch) | |
| tree | a2c9603aa89bcadbb7fcc8fd253ed851ec450d74 /zebra/zapi_msg.c | |
| parent | beb91114ec5fcfa2bca1c7c1358b39c6640aec4c (diff) | |
| parent | 9212d1e196bdc6bca247e6d05e5c19bbf9225f8c (diff) | |
Merge pull request #6974 from liron-ze/high-cpu-usage
zebra: Solve the problem of high CPU and memory usage when creating t…
Diffstat (limited to 'zebra/zapi_msg.c')
| -rw-r--r-- | zebra/zapi_msg.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c index 4b31b46bce..66f535177f 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c @@ -1349,6 +1349,20 @@ static void zread_interface_add(ZAPI_HANDLER_ARGS) struct vrf *vrf; struct interface *ifp; + vrf_id_t vrf_id = zvrf_id(zvrf); + if (vrf_id != VRF_DEFAULT && vrf_id != VRF_UNKNOWN) { + FOR_ALL_INTERFACES (zvrf->vrf, ifp) { + /* Skip pseudo interface. */ + if (!CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_ACTIVE)) + continue; + + zsend_interface_add(client, ifp); + zsend_interface_link_params(client, ifp); + zsend_interface_addresses(client, ifp); + } + return; + } + RB_FOREACH (vrf, vrf_id_head, &vrfs_by_id) { FOR_ALL_INTERFACES (vrf, ifp) { /* Skip pseudo interface. */ |
