Skip to content
Snippets Groups Projects
Commit e58fc091 authored by Malte Bauch's avatar Malte Bauch
Browse files

Add kms id to peer

parent 27c2fe04
No related branches found
No related tags found
1 merge request!1Move proto kms into ekms
......@@ -51,6 +51,7 @@ type EKMS struct {
externalNotifierQLE chan uint32
kmsPeersMutex sync.Mutex
// TODO(maba): find a better name for this
// TODO: add mutex
keysForPathId map[uuid.UUID]string
routingTable map[uuid.UUID]*Route
KmsPeers map[string]*kmsPeer
......@@ -116,13 +117,13 @@ func (kms *EKMS) AddQuantumElement(qm QuantumModule) error {
return nil
}
func (kms *EKMS) AddPeer(kmsPeerSocket string, servingQLE QuantumModule) (*kmsPeer, error) {
func (kms *EKMS) AddPeer(peerKmsId string, kmsPeerSocket string, servingQLE QuantumModule) (*kmsPeer, error) {
//check if peer exists
if _, there := kms.KmsPeers[kmsPeerSocket]; there {
log.Errorf("Trying to add existing peer %s", kmsPeerSocket)
return nil, fmt.Errorf("Trying to add existing peer %s", kmsPeerSocket)
}
peer, err := NewKmsPeer(servingQLE, kmsPeerSocket, kms.interComAddr, kms.externalNotifierKMSPeer)
peer, err := NewKmsPeer(peerKmsId, servingQLE, kmsPeerSocket, kms.interComAddr, kms.externalNotifierKMSPeer)
if err != nil {
return nil, err
}
......
......@@ -21,6 +21,7 @@ var (
etsiPort = flag.Int("port", 50900, "The server port")
)
// TODO: remove etsiServer
type etsiServer struct {
pb.UnimplementedKmsETSIServer
handlingEkms *EKMS
......@@ -65,7 +66,8 @@ func (es *etsiServer) ETSIAddKMSPeer(ctx context.Context, in *pb.ETSIKMSPeerRequ
return &pb.ETSIKMSPeerReply{}, err
}
es.handlingEkms.AddPeer(in.GetKmsPeerSocket(), servingQLE)
//TODO: remove hardcoded id
es.handlingEkms.AddPeer("default", in.GetKmsPeerSocket(), servingQLE)
return &pb.ETSIKMSPeerReply{
KmsPeerName: es.handlingEkms.kmsName,
......
......@@ -34,6 +34,7 @@ type kmsPeer struct {
externalNotifierKMSPeer chan string
peerClient pbIC.KmsTalkerClient
peerStatus KmsPeerStatus
peerKmsId string // NOTE: might be changed in the future
interComAddr string
servingQuantumModul QuantumModule
tcpSocket net.TCPAddr // the IP address and TCP port (aka socket) of the kms peer
......@@ -44,7 +45,7 @@ type kmsPeer struct {
quit chan bool // cancel the peer goroutine
}
func NewKmsPeer(servQM QuantumModule, tcpSocketStr string, interComAddr string, in chan string) (*kmsPeer, error) {
func NewKmsPeer(peerKmsId string, servQM QuantumModule, tcpSocketStr string, interComAddr string, in chan string) (*kmsPeer, error) {
if servQM.Peer() != nil {
return nil, fmt.Errorf("QuantumModule with ID: , already has a peer", servQM.ID())
}
......@@ -60,6 +61,7 @@ func NewKmsPeer(servQM QuantumModule, tcpSocketStr string, interComAddr string,
peerClient: peerClient,
// TODO: change this, only for demo purposes
peerStatus: KmsPeerUp,
peerKmsId: peerKmsId,
// TODO: move this into a config
interComAddr: interComAddr,
servingQuantumModul: servQM,
......
......@@ -23,7 +23,6 @@ type QuantumModule interface {
// NOTE: Sync will be removed as soon as the emulated quantum module has been
// changed to push a constant byte stream.
Sync() error
Manufacturer() string
KeyStore() *kmsKeyStore
Peer() *kmsPeer
SetPeer(*kmsPeer)
......@@ -59,10 +58,6 @@ func (eqe *EmulatedQuantumModule) ID() uuid.UUID {
return eqe.QlID
}
func (eqe *EmulatedQuantumModule) Manufacturer() string {
return "danet"
}
func (eqe *EmulatedQuantumModule) Initialize() error {
// TODO: error handling
go eqe.keyHandler()
......@@ -177,3 +172,9 @@ func (eqe *EmulatedQuantumModule) KeyChopper(bulkKey *quantumlayer.QuantumLayerB
}
return nil
}
type ETSI014HTTPQuantumModule struct {
id uuid.UUID
keyStore *kmsKeyStore
peer *kmsPeer
}
......@@ -81,7 +81,7 @@ func emulatedKMS(myName, myUDPAddr, myInterComAddr, peerUDPAddr, peerInterComAdd
eqm.QuantumElementLink.AddPeer(udpQL2Addr)
_, err = emuKMS.AddPeer(peerInterComAddr, eqm)
_, err = emuKMS.AddPeer(myName, peerInterComAddr, eqm)
if err != nil {
log.Println("PEERERROR: ", err)
}
......@@ -129,12 +129,12 @@ func middleKMS(myName, myUDPAddr, myInterComAddr, leftUDPAddr, leftInterComAddr,
qlForLeft.QuantumElementLink.AddPeer(netLeftUDPAddr)
qlForRight.QuantumElementLink.AddPeer(netRightUDPAddr)
peerLeft, err := emuKMS.AddPeer(leftInterComAddr, qlForLeft)
peerLeft, err := emuKMS.AddPeer("leftKMS", leftInterComAddr, qlForLeft)
if err != nil {
log.Println(err)
}
peerRight, err := emuKMS.AddPeer(rightInterComAddr, qlForRight)
peerRight, err := emuKMS.AddPeer("rightKMS", rightInterComAddr, qlForRight)
if err != nil {
log.Println(err)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment