diff --git a/main.go b/main.go index e76a37526aeaf58e16c0c51dde2e5229994ee8e5..d9c5737f95394d86c41b69145fad44bdb5e9ba26 100644 --- a/main.go +++ b/main.go @@ -1,13 +1,34 @@ package main import ( - "code.fbi.h-da.de/cocsn/gosdn/nucleus" + "flag" + "gosdn/nucleus" ) + +// Generate the code out of the yang modules +//go:generate go run $GOPATH/src/github.com/openconfig/ygot/generator/generator.go -path=yang -output_file=yang-processor/gosdnyang.go.go -package_name=gosdnyang -generate_fakeroot -fakeroot_name=device -compress_paths=true -shorten_enum_leaf_names -exclude_modules=ietf-interfaces yang/openconfig-interfaces.yang yang/openconfig-if-ip.yang + +type goSDNConfiguration struct { + cliServerAddr4 *string + cliServerPort4 *int +} + func main() { + // register our supported flags + cliServerAddr4 := flag.String("cliServerAddr", "127.0.0.1", "The IPv4 Address of the grpcCLI.") + cliServerPort4 := flag.Int("cliServerPort", 55055, "The port number of the grpcCLI") + + flag.Parse() + + var myConfiguration = new(goSDNConfiguration) + myConfiguration.cliServerAddr4 = cliServerAddr4 + myConfiguration.cliServerPort4 = cliServerPort4 + // hand off to cmd for further processing - nucleus.Execute() + nucleus.StartUp() + nucleus.Run() // nothing to see here, please move on! } diff --git a/nucleus/controller.go b/nucleus/controller.go index c6d05cac579432cdc66e8ebd51f842ba94dccf8f..1c7edae0d43013e7bef2ab9f720ac0a2d12de2dd 100644 --- a/nucleus/controller.go +++ b/nucleus/controller.go @@ -1,10 +1,10 @@ package nucleus import ( - yangPro "code.fbi.h-da.de/cocsn/yang-modules/generated/ciena" "fmt" "github.com/openconfig/ygot/ygot" "net" + yangPro "gosdn/yang-processor" ) // This is a test function in order to see how to generate JSON encoded openconfig stuff @@ -17,14 +17,11 @@ func AssembleJSON() { for _, iface := range interfaces { fmt.Println(iface.Name) - i, err := d.WaveserverInterfaces.NewLogicalInterface("en0") + i, err := d.NewInterface(iface.Name) if err != nil { panic(err) } - i.State = &yangPro.CienaWaveserverInterfaces_WaveserverInterfaces_LogicalInterface_State{ - AdminState: 0, - OperationalState: 0, - } + i.Mtu = ygot.Uint16(234) //i.Mtu = ygot.Uint16(iface.MTU) } @@ -49,4 +46,4 @@ func AssembleJSON() { panic(fmt.Sprintf("Cannot unmarshal JSON: %v", err)) } -} +} \ No newline at end of file diff --git a/nucleus/nucleus-core.go b/nucleus/nucleus-core.go index 4ae2dd1aa4ce4bb3f15c97a8ec91ed47de693fb9..d883dd132cd9f0a0bc18829be463b814b40963a0 100644 --- a/nucleus/nucleus-core.go +++ b/nucleus/nucleus-core.go @@ -6,6 +6,7 @@ import ( "google.golang.org/grpc" "log" "net" + pb "gosdn/cliInterface" "time" ) @@ -65,9 +66,6 @@ func StartUp() { func Run() { isRunning := true - // Test ygot - AssembleJSON() - for isRunning { time.Sleep(10 * time.Second) isRunning = false diff --git a/nucleus/root.go b/nucleus/root.go deleted file mode 100644 index c934fa7103018aebb7aac480af3a82ff17bde378..0000000000000000000000000000000000000000 --- a/nucleus/root.go +++ /dev/null @@ -1,39 +0,0 @@ -package nucleus - -import ( - "fmt" - "github.com/spf13/cobra" - "os" -) - - -func init() { - rootCmd.AddCommand(versionCmd) -} - -var versionCmd = &cobra.Command{ - Use: "version", - Short: "Print the version number of goSDN", - Long: `A version is a version.`, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Beachead -- unkown HEAD") - }, -} - -var rootCmd = &cobra.Command{ - Use: "goSDN", - Short: "A yet still incomplete attempt to build an network operating system, but...:-)", - Long: "Incomplete network operating system. Complete documentation is available at XXX", - Run: func(cmd *cobra.Command, args []string) { - // Do Stuff Here - StartUp() - Run() - }, -} - -func Execute() { - if err := rootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } -}