Could someone please review this?

Cheers,
Thomas

On 07/12/2017 01:26 PM, Thomas Hipp wrote:
> Add support for NAT in network forward, and add test code.
> 
> Signed-off-by: Thomas Hipp <[email protected]>
> ---
>  network.go      | 20 ++++++++++++++++++--
>  network_test.go | 31 +++++++++++++++++++++++++------
>  2 files changed, 43 insertions(+), 8 deletions(-)
> 
> diff --git a/network.go b/network.go
> index cc850a1..3635ad2 100644
> --- a/network.go
> +++ b/network.go
> @@ -41,9 +41,25 @@ type NetworkDomain struct {
>       LocalOnly string `xml:"localOnly,attr,omitempty"`
>  }
>  
> +type NetworkForwardNATAddress struct {
> +     Start string `xml:"start,attr"`
> +     End   string `xml:"end,attr"`
> +}
> +
> +type NetworkForwardNATPort struct {
> +     Start uint `xml:"start,attr"`
> +     End   uint `xml:"end,attr"`
> +}
> +
> +type NetworkForwardNAT struct {
> +     Addresses []NetworkForwardNATAddress `xml:"address"`
> +     Ports     []NetworkForwardNATPort    `xml:"port"`
> +}
> +
>  type NetworkForward struct {
> -     Mode string `xml:"mode,attr,omitempty"`
> -     Dev  string `xml:"dev,attr,omitempty"`
> +     Mode string             `xml:"mode,attr,omitempty"`
> +     Dev  string             `xml:"dev,attr,omitempty"`
> +     NAT  *NetworkForwardNAT `xml:"nat"`
>  }
>  
>  type NetworkMAC struct {
> diff --git a/network_test.go b/network_test.go
> index 5269398..65f4d53 100644
> --- a/network_test.go
> +++ b/network_test.go
> @@ -67,6 +67,20 @@ var networkTestData = []struct {
>                       },
>                       Forward: &NetworkForward{
>                               Mode: "nat",
> +                             NAT: &NetworkForwardNAT{
> +                                     Addresses: []NetworkForwardNATAddress{
> +                                             NetworkForwardNATAddress{
> +                                                     Start: "1.2.3.4",
> +                                                     End:   "1.2.3.10",
> +                                             },
> +                                     },
> +                                     Ports: []NetworkForwardNATPort{
> +                                             NetworkForwardNATPort{
> +                                                     Start: 500,
> +                                                     End:   1000,
> +                                             },
> +                                     },
> +                             },
>                       },
>                       IPs: []NetworkIP{
>                               NetworkIP{
> @@ -89,9 +103,9 @@ var networkTestData = []struct {
>                                       },
>                               },
>                               NetworkIP{
> -                                     Family: "ipv6",
> -                                     Address:"2001:db8:ca2:2::1",
> -                                     Prefix: "64",
> +                                     Family:  "ipv6",
> +                                     Address: "2001:db8:ca2:2::1",
> +                                     Prefix:  "64",
>                                       DHCP: &NetworkDHCP{
>                                               Hosts: []NetworkDHCPHost{
>                                                       NetworkDHCPHost{
> @@ -99,8 +113,8 @@ var networkTestData = []struct {
>                                                               Name: "paul",
>                                                       },
>                                                       NetworkDHCPHost{
> -                                                             ID:  
> "0:1:0:1:18:aa:62:fe:0:16:3e:44:55:66",
> -                                                             IP:  
> "2001:db8:ca2:2:3::2",
> +                                                             ID: 
> "0:1:0:1:18:aa:62:fe:0:16:3e:44:55:66",
> +                                                             IP: 
> "2001:db8:ca2:2:3::2",
>                                                       },
>                                               },
>                                       },
> @@ -111,7 +125,12 @@ var networkTestData = []struct {
>                       `<network>`,
>                       `  <name>test</name>`,
>                       `  <bridge name="virbr0"></bridge>`,
> -                     `  <forward mode="nat"></forward>`,
> +                     `  <forward mode="nat">`,
> +                     `    <nat>`,
> +                     `      <address start="1.2.3.4" 
> end="1.2.3.10"></address>`,
> +                     `      <port start="500" end="1000"></port>`,
> +                     `    </nat>`,
> +                     `  </forward>`,
>                       `  <ip address="192.168.122.1" 
> netmask="255.255.255.0">`,
>                       `    <dhcp>`,
>                       `      <range start="192.168.122.2" 
> end="192.168.122.254"></range>`,
> 

-- 
Thomas Hipp
Software Developer — k8s core

SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nürnberg
Tel: +49 (0) 911 74053 0 — Fax: +49 (0) 911 7417755

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard,
  Graham Norton, HRB 21284 (AG Nürnberg)

PGP fingerprint: 48D6 A5F4 2D60 57BF 9A37  8004 5DE8 949A 899C 8D99

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to