diff options
| author | Russ White <russ@riw.us> | 2018-05-12 06:37:00 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-12 06:37:00 -0400 |
| commit | 4f366c086c2ac8330174e052226cfdf2237e385d (patch) | |
| tree | 7586bcdf4d7dee073e8acc4849ddf274d37b2ef2 /ospfd/ospf_interface.c | |
| parent | 8d659e9168063897f5a475f78162f0e63889c964 (diff) | |
| parent | 4fc8a85288f48f607b13f7bb36c5055fda92a639 (diff) | |
Merge pull request #2211 from chiragshah6/ospf_vrf_dev
ospfd: packet fifo init in interface create
Diffstat (limited to 'ospfd/ospf_interface.c')
| -rw-r--r-- | ospfd/ospf_interface.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c index 52b954d6a1..ea31d8c2ca 100644 --- a/ospfd/ospf_interface.c +++ b/ospfd/ospf_interface.c @@ -263,6 +263,9 @@ struct ospf_interface *ospf_if_new(struct ospf *ospf, struct interface *ifp, ospf_opaque_type9_lsa_init(oi); oi->ospf = ospf; + + ospf_if_stream_set(oi); + QOBJ_REG(oi, ospf_interface); if (IS_DEBUG_OSPF_EVENT) @@ -322,6 +325,9 @@ void ospf_if_free(struct ospf_interface *oi) { ospf_if_down(oi); + if (oi->obuf) + ospf_fifo_free(oi->obuf); + assert(oi->state == ISM_Down); ospf_opaque_type9_lsa_term(oi); @@ -496,9 +502,8 @@ void ospf_if_stream_unset(struct ospf_interface *oi) struct ospf *ospf = oi->ospf; if (oi->obuf) { - ospf_fifo_free(oi->obuf); - oi->obuf = NULL; - + /* flush the interface packet queue */ + ospf_fifo_flush(oi->obuf); /*reset protocol stats */ ospf_if_reset_stats(oi); @@ -781,7 +786,6 @@ int ospf_if_up(struct ospf_interface *oi) if (oi->type == OSPF_IFTYPE_LOOPBACK) OSPF_ISM_EVENT_SCHEDULE(oi, ISM_LoopInd); else { - ospf_if_stream_set(oi); OSPF_ISM_EVENT_SCHEDULE(oi, ISM_InterfaceUp); } |
