code: func (e *endpoint) WritePacket(_ *stack.Route, _ *stack.GSO, hdr buffer.Prependable, payload buffer.VectorisedView, protocol tcpip.NetworkProtocolNumber) *tcpip.Error {
  	views := make([]buffer.View, 1, 1+len(payload.Views()))
  	views[0] = hdr.View()
  	views = append(views, payload.Views()...)
  	vv := buffer.NewVectorisedView(len(views[0])+payload.Size(), views)
  
  	// Because we're immediately turning around and writing the packet back to the
  	// rx path, we intentionally don't preserve the remote and local link
  	// addresses from the stack.Route we're passed.
  	e.dispatcher.DeliverNetworkPacket(e, "" /* remote */, "" /* local */, protocol, vv)
  
  	return nil
  }
docs: // WritePacket implements stack.LinkEndpoint.WritePacket. It delivers outbound
  // packets to the network-layer dispatcher.