Commit 4af2fc45 authored by Daniel P. Berrangé's avatar Daniel P. Berrangé 💬
Browse files

Add handling of passt user networking config

parent 47f8d238
Loading
Loading
Loading
Loading
+55 −35
Original line number Diff line number Diff line
@@ -539,6 +539,21 @@ type DomainInterfaceSource struct {
}

type DomainInterfaceSourceUser struct {
	Dev string `xml:"dev,attr,omitempty"`
}

type DomainInterfaceSourcePortForward struct {
	Proto   string                                  `xml:"proto,attr"`
	Address string                                  `xml:"address,attr,omitempty"`
	Dev     string                                  `xml:"dev,attr,omitempty"`
	Ranges  []DomainInterfaceSourcePortForwardRange `xml:"range"`
}

type DomainInterfaceSourcePortForwardRange struct {
	Start   uint   `xml:"start,attr"`
	End     uint   `xml:"end,attr,omitempty"`
	To      uint   `xml:"to,attr,omitempty"`
	Exclude string `xml:"exclude,attr,omitempty"`
}

type DomainInterfaceSourceEthernet struct {
@@ -747,8 +762,10 @@ type DomainInterfaceFilterParam struct {
}

type DomainInterfaceBackend struct {
	Type    string `xml:"type,attr,omitempty"`
	Tap     string `xml:"tap,attr,omitempty"`
	VHost   string `xml:"vhost,attr,omitempty"`
	LogFile string `xml:"logFile,attr,omitempty"`
}

type DomainInterfaceTune struct {
@@ -813,6 +830,7 @@ type DomainInterface struct {
	VirtualPort         *DomainInterfaceVirtualPort        `xml:"virtualport"`
	IP                  []DomainInterfaceIP                `xml:"ip"`
	Route               []DomainInterfaceRoute             `xml:"route"`
	PortForward         []DomainInterfaceSourcePortForward `xml:"portForward"`
	Script              *DomainInterfaceScript             `xml:"script"`
	DownScript          *DomainInterfaceScript             `xml:"downscript"`
	BackendDomain       *DomainBackendDomain               `xml:"backenddomain"`
@@ -4029,9 +4047,11 @@ func (a *DomainInterfaceSourceHostdev) UnmarshalXML(d *xml.Decoder, start xml.St

func (a *DomainInterfaceSource) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
	if a.User != nil {
		/* We don't want an empty <source></source> for User mode */
		//return e.EncodeElement(a.User, start)
		if a.User.Dev != "" {
			return e.EncodeElement(a.User, start)
		} else {
			return nil
		}
	} else if a.Ethernet != nil {
		if len(a.Ethernet.IP) > 0 && len(a.Ethernet.Route) > 0 {
			return e.EncodeElement(a.Ethernet, start)