...

Source file src/github.com/Microsoft/hcsshim/internal/tools/networkagent/v0_service_wrapper.go

Documentation: github.com/Microsoft/hcsshim/internal/tools/networkagent

     1  //go:build windows
     2  
     3  package main
     4  
     5  import (
     6  	"context"
     7  
     8  	"github.com/Microsoft/hcsshim/internal/log"
     9  	nodenetsvcV0 "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v0"
    10  	nodenetsvc "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1"
    11  )
    12  
    13  func (s *v0ServiceWrapper) ConfigureContainerNetworking(ctx context.Context, req *nodenetsvcV0.ConfigureContainerNetworkingRequest) (_ *nodenetsvcV0.ConfigureContainerNetworkingResponse, err error) {
    14  	v1Req := &nodenetsvc.ConfigureContainerNetworkingRequest{
    15  		RequestType:        nodenetsvc.RequestType(req.RequestType),
    16  		ContainerID:        req.ContainerID,
    17  		NetworkNamespaceID: req.NetworkNamespaceID,
    18  	}
    19  	v1Resp, err := s.s.ConfigureContainerNetworking(ctx, v1Req)
    20  	if err != nil {
    21  		return nil, err
    22  	}
    23  
    24  	v0Interfaces := make([]*nodenetsvcV0.ContainerNetworkInterface, len(v1Resp.Interfaces))
    25  	for i, v1Interface := range v1Resp.Interfaces {
    26  		v0Interface := &nodenetsvcV0.ContainerNetworkInterface{
    27  			Name:               v1Interface.Name,
    28  			MacAddress:         v1Interface.MacAddress,
    29  			NetworkNamespaceID: v1Interface.NetworkNamespaceID,
    30  		}
    31  
    32  		if v1Interface.Ipaddresses != nil {
    33  			ipAddrs := make([]*nodenetsvcV0.ContainerIPAddress, len(v1Interface.Ipaddresses))
    34  			for i, v1IP := range v1Interface.Ipaddresses {
    35  				v0IP := &nodenetsvcV0.ContainerIPAddress{
    36  					Version:        v1IP.Version,
    37  					Ip:             v1IP.Ip,
    38  					PrefixLength:   v1IP.PrefixLength,
    39  					DefaultGateway: v1IP.DefaultGateway,
    40  				}
    41  				ipAddrs[i] = v0IP
    42  			}
    43  			v0Interface.Ipaddresses = ipAddrs
    44  		}
    45  		v0Interfaces[i] = v0Interface
    46  	}
    47  	return &nodenetsvcV0.ConfigureContainerNetworkingResponse{
    48  		Interfaces: v0Interfaces,
    49  	}, nil
    50  }
    51  
    52  func (s *v0ServiceWrapper) ConfigureNetworking(ctx context.Context, req *nodenetsvcV0.ConfigureNetworkingRequest) (*nodenetsvcV0.ConfigureNetworkingResponse, error) {
    53  	log.G(ctx).WithField("req", req).Info("ConfigureNetworking request")
    54  	v1Req := &nodenetsvc.ConfigureNetworkingRequest{
    55  		ContainerID: req.ContainerID,
    56  		RequestType: nodenetsvc.RequestType(req.RequestType),
    57  	}
    58  	_, err := s.s.ConfigureNetworking(ctx, v1Req)
    59  	if err != nil {
    60  		return nil, err
    61  	}
    62  	return &nodenetsvcV0.ConfigureNetworkingResponse{}, nil
    63  }
    64  
    65  //nolint:stylecheck
    66  func (s *v0ServiceWrapper) GetHostLocalIpAddress(ctx context.Context, req *nodenetsvcV0.GetHostLocalIpAddressRequest) (*nodenetsvcV0.GetHostLocalIpAddressResponse, error) {
    67  	return &nodenetsvcV0.GetHostLocalIpAddressResponse{IpAddr: ""}, nil
    68  }
    69  
    70  func (s *v0ServiceWrapper) PingNodeNetworkService(ctx context.Context, req *nodenetsvcV0.PingNodeNetworkServiceRequest) (*nodenetsvcV0.PingNodeNetworkServiceResponse, error) {
    71  	return &nodenetsvcV0.PingNodeNetworkServiceResponse{}, nil
    72  }
    73  

View as plain text