package
0.0.0-20190213134429-ba42eb2bcf79
Repository: https://github.com/bradburylab/go.git
Documentation: pkg.go.dev

# README

Smcroute

Smcroute is client library for smcroute written in Go programming language.

Library uses unix domain socket for communication.

Documentation

Quick-start

$ sudo chmod 777 /var/run/smcroute
package main

import (
  "fmt"

  "github.com/BradburyLab/go/smcroute"
)

// sudo smcroute -j eth0.1 239.255.1.1
func main() {
  client := smcroute.NewClient()
  cmdJoin := smcroute.NewCMD(smcroute.CMD_JOIN, "eth0.1", "239.255.1.1")
  resp, e := client.Exec(cmdJoin)
  fmt.Println(resp, e)
}

Join and leave

$ sudo chmod 777 /var/run/smcroute
$ ip maddr show eth0.1
2:      eth0.1
        link  33:33:00:00:00:01
        link  01:00:5e:00:00:01
        link  33:33:ff:93:e9:07
        link  33:33:00:00:02:02
        inet  224.0.0.1
        inet6 ff02::202
        inet6 ff02::1:ff93:e907
        inet6 ff02::1
        inet6 ff01::1
package main

import (
  "fmt"

  "github.com/BradburyLab/go/smcroute"
)

// sudo smcroute -j eth0.1 239.255.1.1
func main() {
  client := smcroute.NewClient()
  cmdJoin := smcroute.NewCMD(smcroute.CMD_JOIN, "eth0.1", "239.255.1.1")
  resp, e := client.Exec(cmdJoin)
  fmt.Println(resp, e)
}
$ ip maddr show eth0.1
2:      eth0.1
        link  33:33:00:00:00:01
        link  01:00:5e:00:00:01
        link  33:33:ff:93:e9:07
        link  33:33:00:00:02:02
        inet  224.0.0.1
        inet  239.255.1.1        # <--- +1
        inet6 ff02::202
        inet6 ff02::1:ff93:e907
        inet6 ff02::1
        inet6 ff01::1
package main

import (
  "fmt"

  "github.com/BradburyLab/go/smcroute"
)

// sudo smcroute -l eth0.1 239.255.1.1
func main() {
  client := smcroute.NewClient()
  cmdLeave := smcroute.NewCMD(smcroute.CMD_LEAVE, "eth0.1", "239.255.1.1")
  resp, e := client.Exec(cmdLeave)
  fmt.Println(resp, e)
}
$ ip maddr show eth0.1
2:      eth0.1
        link  33:33:00:00:00:01
        link  01:00:5e:00:00:01
        link  33:33:ff:93:e9:07
        link  33:33:00:00:02:02
        inet  224.0.0.1
        inet6 ff02::202
        inet6 ff02::1:ff93:e907
        inet6 ff02::1
        inet6 ff01::1