...
1
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
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