|
15 | 15 | package tcp |
16 | 16 |
|
17 | 17 | import ( |
18 | | - "fmt" |
19 | | - |
20 | | - "gvisor.dev/gvisor/pkg/buffer" |
21 | 18 | "gvisor.dev/gvisor/pkg/tcpip" |
22 | 19 | "gvisor.dev/gvisor/pkg/tcpip/header" |
23 | 20 | "gvisor.dev/gvisor/pkg/tcpip/seqnum" |
@@ -179,49 +176,5 @@ func (r *ForwarderRequest) CreateEndpoint(queue *waiter.Queue) (tcpip.Endpoint, |
179 | 176 | func (r *ForwarderRequest) ForwardedPacketExperimentOption() (uint16, bool) { |
180 | 177 | r.mu.Lock() |
181 | 178 | defer r.mu.Unlock() |
182 | | - |
183 | | - switch r.segment.pkt.NetworkProtocolNumber { |
184 | | - case header.IPv4ProtocolNumber: |
185 | | - h := header.IPv4(r.segment.pkt.NetworkHeader().Slice()) |
186 | | - opts := h.Options() |
187 | | - iter := opts.MakeIterator() |
188 | | - for { |
189 | | - opt, done, err := iter.Next() |
190 | | - if err != nil { |
191 | | - return 0, false |
192 | | - } |
193 | | - if done { |
194 | | - return 0, false |
195 | | - } |
196 | | - if opt.Type() == header.IPv4OptionExperimentType { |
197 | | - return opt.(*header.IPv4OptionExperiment).Value(), true |
198 | | - } |
199 | | - } |
200 | | - case header.IPv6ProtocolNumber: |
201 | | - h := header.IPv6(r.segment.pkt.NetworkHeader().Slice()) |
202 | | - v := r.segment.pkt.NetworkHeader().View() |
203 | | - if v != nil { |
204 | | - v.TrimFront(header.IPv6MinimumSize) |
205 | | - } |
206 | | - buf := buffer.MakeWithView(v) |
207 | | - buf.Append(r.segment.pkt.TransportHeader().View()) |
208 | | - dataBuf := r.segment.pkt.Data().ToBuffer() |
209 | | - buf.Merge(&dataBuf) |
210 | | - it := header.MakeIPv6PayloadIterator(header.IPv6ExtensionHeaderIdentifier(h.NextHeader()), buf) |
211 | | - |
212 | | - for { |
213 | | - hdr, done, err := it.Next() |
214 | | - if done || err != nil { |
215 | | - break |
216 | | - } |
217 | | - if h, ok := hdr.(header.IPv6ExperimentExtHdr); ok { |
218 | | - hdr.Release() |
219 | | - return h.Value, true |
220 | | - } |
221 | | - hdr.Release() |
222 | | - } |
223 | | - default: |
224 | | - panic(fmt.Sprintf("Unexpected network protocol number %d", r.segment.pkt.NetworkProtocolNumber)) |
225 | | - } |
226 | | - return 0, false |
| 179 | + return r.segment.pkt.ExperimentOptionValue() |
227 | 180 | } |
0 commit comments