network.go | 20 ++++++++++++++++++-- network_test.go | 31 +++++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 8 deletions(-)
Add support for NAT in network forward, and add test code.
Signed-off-by: Thomas Hipp <thipp@suse.de>
---
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>`,
--
2.13.2
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
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 <thipp@suse.de> > --- > 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 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On Wed, Jul 12, 2017 at 01:26:03PM +0200, Thomas Hipp wrote: > Add support for NAT in network forward, and add test code. > > Signed-off-by: Thomas Hipp <thipp@suse.de> > --- > network.go | 20 ++++++++++++++++++-- > network_test.go | 31 +++++++++++++++++++++++++------ > 2 files changed, 43 insertions(+), 8 deletions(-) ACK & pushed Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.