code: func aclConfig(ch api.Channel) {
  	fmt.Println("ACL adding replace")
  
  	req := &acl.ACLAddReplace{
  		ACLIndex: ^uint32(0),
  		Tag:      []byte("access list 1"),
  		R: []acl.ACLRule{
  			{
  				IsPermit:       1,
  				SrcIPAddr:      net.ParseIP("10.0.0.0").To4(),
  				SrcIPPrefixLen: 8,
  				DstIPAddr:      net.ParseIP("192.168.1.0").To4(),
  				DstIPPrefixLen: 24,
  				Proto:          6,
  			},
  			{
  				IsPermit:       1,
  				SrcIPAddr:      net.ParseIP("8.8.8.8").To4(),
  				SrcIPPrefixLen: 32,
  				DstIPAddr:      net.ParseIP("172.16.0.0").To4(),
  				DstIPPrefixLen: 16,
  				Proto:          6,
  			},
  		},
  	}
  	reply := &acl.ACLAddReplaceReply{}
  
  	if err := ch.SendRequest(req).ReceiveReply(reply); err != nil {
  		fmt.Println("ERROR:", err)
  		return
  	}
  	if reply.Retval != 0 {
  		fmt.Println("Retval:", reply.Retval)
  		return
  	}
  
  	fmt.Printf("ACL add replace reply: %+v\n", reply)
  
  }
docs: // aclConfig is another simple API example - in this case, the request contains structured data.