diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-07-13 01:17:01 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-07-13 01:17:01 +0000 |
commit | 5ae571182025283ed8272a3e5456d795f4ef0c80 (patch) | |
tree | 64d43beec76fe84277ed4d0d47f61a3936be0da8 /pkg/tcpip/stack/route.go | |
parent | e9e36c40dfab1748fed1ef18270540133c91ee24 (diff) | |
parent | 9b4d3280e172063a6563d9e72a75b500442ed9b9 (diff) |
Merge 9b4d3280 (automated)
Diffstat (limited to 'pkg/tcpip/stack/route.go')
-rw-r--r-- | pkg/tcpip/stack/route.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/pkg/tcpip/stack/route.go b/pkg/tcpip/stack/route.go index 36d7b6ac7..391ab4344 100644 --- a/pkg/tcpip/stack/route.go +++ b/pkg/tcpip/stack/route.go @@ -163,6 +163,18 @@ func (r *Route) WritePacket(gso *GSO, hdr buffer.Prependable, payload buffer.Vec return err } +// WriteHeaderIncludedPacket writes a packet already containing a network +// header through the given route. +func (r *Route) WriteHeaderIncludedPacket(payload buffer.VectorisedView) *tcpip.Error { + if err := r.ref.ep.WriteHeaderIncludedPacket(r, payload, r.loop); err != nil { + r.Stats().IP.OutgoingPacketErrors.Increment() + return err + } + r.ref.nic.stats.Tx.Packets.Increment() + r.ref.nic.stats.Tx.Bytes.IncrementBy(uint64(payload.Size())) + return nil +} + // DefaultTTL returns the default TTL of the underlying network endpoint. func (r *Route) DefaultTTL() uint8 { return r.ref.ep.DefaultTTL() |