func (h *nodeLeftHandler) Rcv(msg bh.Msg, ctx bh.RcvContext) error { n := nom.Node(msg.Data().(nom.NodeLeft)) d := ctx.Dict(nodeDict) k := string(n.UID()) if _, err := d.Get(k); err != nil { return fmt.Errorf("%v is not joined", n) } d.Del(k) return nil }
func (h *nodeJoinedHandler) Rcv(msg bh.Msg, ctx bh.RcvContext) error { joined := msg.Data().(nom.NodeJoined) d := ctx.Dict(nodeDict) n := nom.Node(joined) k := string(n.UID()) var np nodePortsAndLinks if v, err := d.Get(k); err != nil { glog.Warningf("%v rejoins", n) } else { np = v.(nodePortsAndLinks) } np.N = n // TODO(soheil): Add a flow entry to forward lldp packets to the controller. return d.Put(k, np) }
func (h *nodeJoinedHandler) Map(msg bh.Msg, ctx bh.MapContext) bh.MappedCells { return bh.MappedCells{ {nodeDict, string(nom.Node(msg.Data().(nom.NodeJoined)).UID())}, } }
func (a Adder) Rcv(msg bh.Msg, ctx bh.RcvContext) error { joined := msg.Data().(nom.NodeJoined) return ctx.Dict("Switches").Put(string(nom.Node(joined).UID()), []flow{}) }