From ac847c9803beef3814a5b6c746d8df73a59e858e Mon Sep 17 00:00:00 2001 From: tuna2134 Date: Tue, 30 Jun 2026 11:43:40 +0900 Subject: [PATCH] Add 'add' command to etherip-client for device configuration --- cmd/add.go | 38 ++++++++++++++++++++++++++++++++++++++ cmd/root.go | 18 ------------------ test.sh | 2 +- 3 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 cmd/add.go diff --git a/cmd/add.go b/cmd/add.go new file mode 100644 index 0000000..0b08793 --- /dev/null +++ b/cmd/add.go @@ -0,0 +1,38 @@ +/* +Copyright © 2026 Masato Kikuchi +*/ +package cmd + +import ( + "net" + + "git.neody.ad.jp/tuna2134/etherip-client/utils" + "github.com/spf13/cobra" +) + +var addDevName string +var addLocalIP net.IP +var addRemoteIP net.IP +var addLinkName string + +var addCmd = &cobra.Command{ + Use: "add", + Short: "Ethernet over IPv6(RFC3378)カーネルのクライアント", + RunE: runE, +} + +func runE(cmd *cobra.Command, args []string) error { + err := utils.AddDev(addDevName, addLocalIP, addRemoteIP, addLinkName) + return err +} + +func init() { + addCmd.Flags().StringVarP(&addDevName, "devname", "d", "eip0", "作成するNICの名") + addCmd.Flags().IPVarP(&addLocalIP, "local", "l", nil, "自分の終端アドレス") + addCmd.Flags().IPVarP(&addRemoteIP, "remote", "r", nil, "相手の終端アドレス") + addCmd.Flags().StringVarP(&addLinkName, "link", "L", "", "アンダーレイのNIC名") + + rootCmd.AddCommand(addCmd) +} + + diff --git a/cmd/root.go b/cmd/root.go index 45e8be1..00b39db 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -4,27 +4,13 @@ Copyright © 2026 Masato Kikuchi package cmd import ( - "net" "os" - - "git.neody.ad.jp/tuna2134/etherip-client/utils" "github.com/spf13/cobra" ) -var devName string -var localIP net.IP -var remoteIP net.IP -var linkName string - var rootCmd = &cobra.Command{ Use: "etherip-client", Short: "Ethernet over IPv6(RFC3378)カーネルのクライアント", - RunE: runE, -} - -func runE(cmd *cobra.Command, args []string) error { - err := utils.AddDev(devName, localIP, remoteIP, linkName) - return err } func Execute() { @@ -35,10 +21,6 @@ func Execute() { } func init() { - rootCmd.Flags().StringVarP(&devName, "devname", "d", "eip0", "作成するNICの名") - rootCmd.Flags().IPVarP(&localIP, "local", "l", nil, "自分の終端アドレス") - rootCmd.Flags().IPVarP(&remoteIP, "remote", "r", nil, "相手の終端アドレス") - rootCmd.Flags().StringVarP(&linkName, "link", "L", "", "アンダーレイのNIC名") } diff --git a/test.sh b/test.sh index 51aae0e..63f7733 100644 --- a/test.sh +++ b/test.sh @@ -1 +1 @@ -sudo ./etherip-client -d eip0 -l 2402:2f60:500:beef:be24:11ff:fe12:d655 -r 2401:5e40:1:462:6709:e050:dcc5:d592 -L ens18 \ No newline at end of file +sudo ./etherip-client add -d eip0 -l 2402:2f60:500:beef:be24:11ff:fe12:d655 -r 2401:5e40:1:462:6709:e050:dcc5:d592 -L ens18 \ No newline at end of file