@@ -93,7 +93,7 @@ func (d *driver) peerDbSearch(nid string, peerIP netip.Addr) (netip.Addr, net.Ha
9393 return peerIPMatched , peerMacMatched , pEntryMatched , nil
9494}
9595
96- func (d * driver ) peerDbAdd (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , isLocal bool ) (bool , int ) {
96+ func (d * driver ) peerDbAdd (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr ) (bool , int ) {
9797 d .peerDb .Lock ()
9898 pMap , ok := d .peerDb .mp [nid ]
9999 if ! ok {
@@ -109,9 +109,6 @@ func (d *driver) peerDbAdd(nid, eid string, peerIP netip.Prefix, peerMac net.Har
109109 vtep : vtep ,
110110 prefixBits : peerIP .Bits (),
111111 }
112- if isLocal {
113- pEntry .vtep = netip.Addr {}
114- }
115112
116113 pMap .Lock ()
117114 defer pMap .Unlock ()
@@ -124,7 +121,7 @@ func (d *driver) peerDbAdd(nid, eid string, peerIP netip.Prefix, peerMac net.Har
124121 return b , i
125122}
126123
127- func (d * driver ) peerDbDelete (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , isLocal bool ) (bool , int ) {
124+ func (d * driver ) peerDbDelete (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr ) (bool , int ) {
128125 d .peerDb .Lock ()
129126 pMap , ok := d .peerDb .mp [nid ]
130127 if ! ok {
@@ -140,9 +137,6 @@ func (d *driver) peerDbDelete(nid, eid string, peerIP netip.Prefix, peerMac net.
140137 vtep : vtep ,
141138 prefixBits : peerIP .Bits (),
142139 }
143- if isLocal {
144- pEntry .vtep = netip.Addr {}
145- }
146140
147141 pMap .Lock ()
148142 defer pMap .Unlock ()
@@ -181,38 +175,41 @@ func (d *driver) peerInitOp(nid string) error {
181175 return false
182176 }
183177
184- d .peerAddOp (nid , pEntry .eid , netip .PrefixFrom (peerIP , pEntry .prefixBits ), peerMac , pEntry .vtep , false , pEntry . isLocal () )
178+ d .peerAddOp (nid , pEntry .eid , netip .PrefixFrom (peerIP , pEntry .prefixBits ), peerMac , pEntry .vtep , false )
185179 // return false to loop on all entries
186180 return false
187181 })
188182}
189183
190- func (d * driver ) peerAdd (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , localPeer bool ) {
184+ // peerAdd adds a new entry to the peer database.
185+ //
186+ // Local peers are signified by an invalid vtep (i.e. netip.Addr{}).
187+ func (d * driver ) peerAdd (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr ) {
191188 d .peerOpMu .Lock ()
192189 defer d .peerOpMu .Unlock ()
193- err := d .peerAddOp (nid , eid , peerIP , peerMac , vtep , true , localPeer )
190+ err := d .peerAddOp (nid , eid , peerIP , peerMac , vtep , true )
194191 if err != nil {
195192 log .G (context .TODO ()).WithError (err ).Warn ("Peer add operation failed" )
196193 }
197194}
198195
199- func (d * driver ) peerAddOp (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , updateDB , localPeer bool ) error {
196+ func (d * driver ) peerAddOp (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , updateDB bool ) error {
200197 if err := validateID (nid , eid ); err != nil {
201198 return err
202199 }
203200
204201 var dbEntries int
205202 var inserted bool
206203 if updateDB {
207- inserted , dbEntries = d .peerDbAdd (nid , eid , peerIP , peerMac , vtep , localPeer )
204+ inserted , dbEntries = d .peerDbAdd (nid , eid , peerIP , peerMac , vtep )
208205 if ! inserted {
209- log .G (context .TODO ()).Warnf ("Entry already present in db: nid:%s eid:%s peerIP:%v peerMac:%v isLocal:%t vtep:%v" ,
210- nid , eid , peerIP , peerMac , localPeer , vtep )
206+ log .G (context .TODO ()).Warnf ("Entry already present in db: nid:%s eid:%s peerIP:%v peerMac:%v vtep:%v" ,
207+ nid , eid , peerIP , peerMac , vtep )
211208 }
212209 }
213210
214211 // Local peers do not need any further configuration
215- if localPeer {
212+ if ! vtep . IsValid () {
216213 return nil
217214 }
218215
@@ -261,24 +258,27 @@ func (d *driver) peerAddOp(nid, eid string, peerIP netip.Prefix, peerMac net.Har
261258 return nil
262259}
263260
264- func (d * driver ) peerDelete (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , localPeer bool ) {
261+ // peerDelete removes an entry from the peer database.
262+ //
263+ // Local peers are signified by an invalid vtep (i.e. netip.Addr{}).
264+ func (d * driver ) peerDelete (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr ) {
265265 d .peerOpMu .Lock ()
266266 defer d .peerOpMu .Unlock ()
267- err := d .peerDeleteOp (nid , eid , peerIP , peerMac , vtep , localPeer )
267+ err := d .peerDeleteOp (nid , eid , peerIP , peerMac , vtep )
268268 if err != nil {
269269 log .G (context .TODO ()).WithError (err ).Warn ("Peer delete operation failed" )
270270 }
271271}
272272
273- func (d * driver ) peerDeleteOp (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr , localPeer bool ) error {
273+ func (d * driver ) peerDeleteOp (nid , eid string , peerIP netip.Prefix , peerMac net.HardwareAddr , vtep netip.Addr ) error {
274274 if err := validateID (nid , eid ); err != nil {
275275 return err
276276 }
277277
278- deleted , dbEntries := d .peerDbDelete (nid , eid , peerIP , peerMac , vtep , localPeer )
278+ deleted , dbEntries := d .peerDbDelete (nid , eid , peerIP , peerMac , vtep )
279279 if ! deleted {
280- log .G (context .TODO ()).Warnf ("Entry was not in db: nid:%s eid:%s peerIP:%v peerMac:%v isLocal:%t vtep:%v" ,
281- nid , eid , peerIP , peerMac , localPeer , vtep )
280+ log .G (context .TODO ()).Warnf ("Entry was not in db: nid:%s eid:%s peerIP:%v peerMac:%v vtep:%v" ,
281+ nid , eid , peerIP , peerMac , vtep )
282282 }
283283
284284 n := d .network (nid )
@@ -291,12 +291,12 @@ func (d *driver) peerDeleteOp(nid, eid string, peerIP netip.Prefix, peerMac net.
291291 return nil
292292 }
293293
294- if err := d .checkEncryption (nid , vtep , localPeer , false ); err != nil {
294+ if err := d .checkEncryption (nid , vtep , ! vtep . IsValid () , false ); err != nil {
295295 log .G (context .TODO ()).Warn (err )
296296 }
297297
298298 // Local peers do not have any local configuration to delete
299- if ! localPeer {
299+ if vtep . IsValid () {
300300 s := n .getSubnetforIP (peerIP )
301301 if s == nil {
302302 return fmt .Errorf ("could not find the subnet %q in network %q" , peerIP .String (), n .id )
@@ -329,7 +329,7 @@ func (d *driver) peerDeleteOp(nid, eid string, peerIP netip.Prefix, peerMac net.
329329 log .G (context .TODO ()).Errorf ("peerDeleteOp unable to restore a configuration for nid:%s ip:%v mac:%v err:%s" , nid , peerIP , peerMac , err )
330330 return err
331331 }
332- return d .peerAddOp (nid , peerEntry .eid , netip .PrefixFrom (peerIPAddr , peerEntry .prefixBits ), peerMac , peerEntry .vtep , false , peerEntry . isLocal () )
332+ return d .peerAddOp (nid , peerEntry .eid , netip .PrefixFrom (peerIPAddr , peerEntry .prefixBits ), peerMac , peerEntry .vtep , false )
333333}
334334
335335func (d * driver ) peerFlush (nid string ) {
0 commit comments