func sendLLDP(deviceID string, f openflow.Factory, w trans.Writer, p openflow.Port) error { lldp, err := newLLDPEtherFrame(deviceID, p) if err != nil { return err } outPort := openflow.NewOutPort() outPort.SetValue(p.Number()) // Packet out to the port action, err := f.NewAction() if err != nil { return err } action.SetOutPort(outPort) out, err := f.NewPacketOut() if err != nil { return err } // From controller out.SetInPort(openflow.NewInPort()) out.SetAction(action) out.SetData(lldp) return w.Write(out) }