github.com/cilium/cilium@v1.16.2/pkg/maps/l2respondermap/l2_responder_map4_fake.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package l2respondermap
     5  
     6  import (
     7  	"net/netip"
     8  )
     9  
    10  func NewFakeMap() Map {
    11  	return &fakeMap{entries: make(map[L2ResponderKey]L2ResponderStats)}
    12  }
    13  
    14  type fakeMap struct {
    15  	entries map[L2ResponderKey]L2ResponderStats
    16  }
    17  
    18  func (fm *fakeMap) Create(ip netip.Addr, ifIndex uint32) error {
    19  	fm.entries[newL2ResponderKey(ip, ifIndex)] = L2ResponderStats{}
    20  	return nil
    21  }
    22  
    23  func (fm *fakeMap) Lookup(ip netip.Addr, ifIndex uint32) (*L2ResponderStats, error) {
    24  	entry, found := fm.entries[newL2ResponderKey(ip, ifIndex)]
    25  	if found {
    26  		return &entry, nil
    27  	}
    28  
    29  	return nil, nil
    30  }
    31  
    32  func (fm *fakeMap) Delete(ip netip.Addr, ifIndex uint32) error {
    33  	delete(fm.entries, newL2ResponderKey(ip, ifIndex))
    34  	return nil
    35  }
    36  
    37  func (fm *fakeMap) IterateWithCallback(cb IterateCallback) error {
    38  	for k, v := range fm.entries {
    39  		cb(&k, &v)
    40  	}
    41  
    42  	return nil
    43  }