MCPcopy
hub / github.com/google/gvisor / newBridge

Method newBridge

pkg/sentry/socket/netstack/stack.go:520–545  ·  view source on GitHub ↗
(ctx context.Context, linkAttrs map[uint16]nlmsg.BytesView, linkInfoAttrs map[uint16]nlmsg.BytesView)

Source from the content-addressed store, hash-verified

518}
519
520func (s *Stack) newBridge(ctx context.Context, linkAttrs map[uint16]nlmsg.BytesView, linkInfoAttrs map[uint16]nlmsg.BytesView) *syserr.Error {
521 dstNs, sysErr := s.lockSrcAndDst(ctx, linkAttrs)
522 if sysErr != nil {
523 return sysErr
524 }
525 defer s.unlockSrcAndDst(ctx, dstNs)
526
527 ifname := ""
528
529 if v, ok := linkAttrs[linux.IFLA_IFNAME]; ok {
530 ifname = v.String()
531 }
532 ep := stack.NewBridgeEndpoint(defaultMTU)
533 id := s.Stack.NextNICID()
534 err := s.Stack.CreateNICWithOptions(id, ep, stack.NICOptions{
535 Name: ifname,
536 })
537 if err != nil {
538 return syserr.TranslateNetstackError(err)
539 }
540 if err := s.setLinkLocked(ctx, id, linkAttrs, dstNs); err != nil {
541 return err
542 }
543
544 return nil
545}
546
547func (s *Stack) newInterface(ctx context.Context, msg *nlmsg.Message, linkAttrs map[uint16]nlmsg.BytesView) *syserr.Error {
548 var (

Callers 1

newInterfaceMethod · 0.95

Calls 8

lockSrcAndDstMethod · 0.95
unlockSrcAndDstMethod · 0.95
setLinkLockedMethod · 0.95
NewBridgeEndpointFunction · 0.92
TranslateNetstackErrorFunction · 0.92
NextNICIDMethod · 0.80
CreateNICWithOptionsMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected