diff options
| author | Russ White <russ@riw.us> | 2021-12-04 06:36:03 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-04 06:36:03 -0500 |
| commit | c400ebde1c04fef51b7645508013ed611eab93a7 (patch) | |
| tree | 2ff54220b5ba2e4f9c1f36b0a81076f1379b8183 | |
| parent | 9c8523e089e97d83a7487f6eee093b73f7b49bd9 (diff) | |
| parent | 7f5faf7c765e9ddc0a9c9344be23b9134ddb45ca (diff) | |
Merge pull request #10017 from AnuradhaKaruppiah/evpn-pim-register
pimd: handle vxlan sg add/del for upstream entries that are in a reg-join state
| -rw-r--r-- | pimd/pim_vxlan.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/pimd/pim_vxlan.c b/pimd/pim_vxlan.c index 4c8a96a84e..edd41bc44d 100644 --- a/pimd/pim_vxlan.c +++ b/pimd/pim_vxlan.c @@ -390,9 +390,25 @@ static void pim_vxlan_orig_mr_up_add(struct pim_vxlan_sg *vxlan_sg) pim_upstream_keep_alive_timer_start(up, vxlan_sg->pim->keep_alive_time); /* register the source with the RP */ - if (up->reg_state == PIM_REG_NOINFO) { + switch (up->reg_state) { + + case PIM_REG_NOINFO: pim_register_join(up); pim_null_register_send(up); + break; + + case PIM_REG_JOIN: + /* if the pim upstream entry is already in reg-join state + * send null_register right away and add to the register + * worklist + */ + pim_null_register_send(up); + pim_vxlan_update_sg_reg_state(pim, up, true); + break; + + case PIM_REG_JOIN_PENDING: + case PIM_REG_PRUNE: + break; } /* update the inherited OIL */ |
