X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=examples%2Fbinapi-types%2Fbinapi_types.go;fp=examples%2Funion-example%2Funion_example.go;h=849ad1b5bfd37bd0ccd773f6ee3da020edf9100f;hb=d1f24d37bd447b64e402298bb8eb2479681facf9;hp=cdba2faebc1723db764a5c3a02cee0565951ea09;hpb=1548c7e12531e3d055567d761c580a1c7ff0ac40;p=govpp.git diff --git a/examples/union-example/union_example.go b/examples/binapi-types/binapi_types.go similarity index 63% rename from examples/union-example/union_example.go rename to examples/binapi-types/binapi_types.go index cdba2fa..849ad1b 100644 --- a/examples/union-example/union_example.go +++ b/examples/binapi-types/binapi_types.go @@ -17,12 +17,12 @@ package main import ( "fmt" - "git.fd.io/govpp.git/codec" - "git.fd.io/govpp.git/examples/binapi/interfaces" - "git.fd.io/govpp.git/examples/binapi/ip" - "git.fd.io/govpp.git/examples/binapi/ip_types" "log" - "reflect" + + "git.fd.io/govpp.git/binapi/ethernet_types" + "git.fd.io/govpp.git/binapi/ip" + "git.fd.io/govpp.git/binapi/ip_types" + "git.fd.io/govpp.git/codec" ) func init() { @@ -30,9 +30,8 @@ func init() { } func main() { - constructExample() - - encodingExampleIP() + addressUnionExample() + ipAddressExample() // convert IP from string form into Address type containing union convertIP("10.10.1.1") @@ -48,32 +47,43 @@ func main() { convertToMacAddress("00:10:ab:4f:00:01") } -func constructExample() { +func addressUnionExample() { var union ip_types.AddressUnion - // create AddressUnion with AdressUnionXXX constructors + // initialize union using constructors union = ip_types.AddressUnionIP4(ip_types.IP4Address{192, 168, 1, 10}) union = ip_types.AddressUnionIP6(ip_types.IP6Address{0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x02}) - // set AddressUnion with SetXXX methods - union.SetIP4(ip_types.IP4Address{192, 168, 1, 10}) - union.SetIP6(ip_types.IP6Address{0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x02}) + // get union value using getters + ip4 := union.GetIP4() + ip6 := union.GetIP6() + + // set union value using setters + union.SetIP4(ip4) + union.SetIP6(ip6) } -func encodingExampleIP() { - var c = codec.DefaultCodec +func ipAddressExample() { + // parse string into IP address + addrIP4, err := ip_types.ParseAddress("192.168.1.10") + if err != nil { + panic(err) + } + /*addrIP6, err := ip_types.ParseAddress("ff:2::2") + if err != nil { + panic(err) + }*/ - // encode this message var msg = ip.IPPuntRedirect{ + IsAdd: true, Punt: ip.PuntRedirect{ - Nh: ip_types.Address{ - Af: ip_types.ADDRESS_IP4, - Un: ip_types.AddressUnionIP4(ip_types.IP4Address{192, 168, 1, 10}), - }, + Nh: addrIP4, }, - IsAdd: true, } - log.Printf("encoding message: %+v", msg) + + log.Printf("encoding message: %#v", msg) + + var c = codec.DefaultCodec b, err := c.EncodeMsg(&msg, 1) if err != nil { @@ -85,10 +95,10 @@ func encodingExampleIP() { if err := c.DecodeMsg(b, &msg2); err != nil { log.Fatal(err) } - log.Printf("decoded message: %+v", msg2) + log.Printf("decoded message: %#v", msg2) // compare the messages - if !reflect.DeepEqual(msg, msg2) { + if !msg.Punt.Nh.ToIP().Equal(msg2.Punt.Nh.ToIP()) { log.Fatal("messages are not equal") } } @@ -99,10 +109,9 @@ func convertIP(ip string) { log.Printf("error converting IP to Address: %v", err) return } - fmt.Printf("converted IP %q to: %+v\n", ip, addr) + fmt.Printf("converted IP %q to: %#v\n", ip, addr) - ipStr := addr.ToString() - fmt.Printf("Address converted back to string IP %+v to: %q\n", addr, ipStr) + fmt.Printf("Address converted back to string IP %#v to: %s\n", addr, addr) } func convertIPPrefix(ip string) { @@ -111,20 +120,18 @@ func convertIPPrefix(ip string) { log.Printf("error converting prefix to IP4Prefix: %v", err) return } - fmt.Printf("converted prefix %q to: %+v\n", ip, prefix) + fmt.Printf("converted prefix %q to: %#v\n", ip, prefix) - ipStr := prefix.ToString() - fmt.Printf("IP4Prefix converted back to string prefix %+v to: %q\n", prefix, ipStr) + fmt.Printf("IP4Prefix converted back to string prefix %#v to: %s\n", prefix, prefix) } func convertToMacAddress(mac string) { - parsedMac, err := interfaces.ParseMAC(mac) + parsedMac, err := ethernet_types.ParseMacAddress(mac) if err != nil { log.Printf("error converting MAC to MacAddress: %v", err) return } - fmt.Printf("converted prefix %q to: %+v\n", mac, parsedMac) + fmt.Printf("converted mac %q to: %#v\n", mac, parsedMac) - macStr := parsedMac.ToString() - fmt.Printf("MacAddress converted back to string %+v to: %q\n", parsedMac, macStr) -} \ No newline at end of file + fmt.Printf("MacAddress converted back to string %#v to: %s\n", parsedMac, parsedMac) +}