OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_QUIC_QUIC_FRAMER_H_ | 5 #ifndef NET_QUIC_QUIC_FRAMER_H_ |
6 #define NET_QUIC_QUIC_FRAMER_H_ | 6 #define NET_QUIC_QUIC_FRAMER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 // and 0 if the frame doesn't fit. Includes the header size for the first | 241 // and 0 if the frame doesn't fit. Includes the header size for the first |
242 // frame. | 242 // frame. |
243 size_t GetSerializedFrameLength( | 243 size_t GetSerializedFrameLength( |
244 const QuicFrame& frame, size_t free_bytes, bool first_frame); | 244 const QuicFrame& frame, size_t free_bytes, bool first_frame); |
245 | 245 |
246 // Returns the associated data from the encrypted packet |encrypted| as a | 246 // Returns the associated data from the encrypted packet |encrypted| as a |
247 // stringpiece. | 247 // stringpiece. |
248 static base::StringPiece GetAssociatedDataFromEncryptedPacket( | 248 static base::StringPiece GetAssociatedDataFromEncryptedPacket( |
249 const QuicEncryptedPacket& encrypted, | 249 const QuicEncryptedPacket& encrypted, |
250 QuicGuidLength guid_length, | 250 QuicGuidLength guid_length, |
251 bool includes_version); | 251 bool includes_version, |
| 252 QuicSequenceNumberLength sequence_number_length); |
252 | 253 |
253 // Returns a SerializedPacket whose |packet| member is owned by the caller, | 254 // Returns a SerializedPacket whose |packet| member is owned by the caller, |
254 // and is populated with the fields in |header| and |frames|, or is NULL if | 255 // and is populated with the fields in |header| and |frames|, or is NULL if |
255 // the packet could not be created. | 256 // the packet could not be created. |
256 // TODO(ianswett): Used for testing only. | 257 // TODO(ianswett): Used for testing only. |
257 SerializedPacket ConstructFrameDataPacket(const QuicPacketHeader& header, | 258 SerializedPacket ConstructFrameDataPacket(const QuicPacketHeader& header, |
258 const QuicFrames& frames); | 259 const QuicFrames& frames); |
259 | 260 |
260 // Returns a SerializedPacket whose |packet| member is owned by the caller, | 261 // Returns a SerializedPacket whose |packet| member is owned by the caller, |
261 // is created from the first |num_frames| frames, or is NULL if the packet | 262 // is created from the first |num_frames| frames, or is NULL if the packet |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 bool ProcessVersionNegotiationPacket(QuicPacketPublicHeader* public_header); | 336 bool ProcessVersionNegotiationPacket(QuicPacketPublicHeader* public_header); |
336 | 337 |
337 bool WritePacketHeader(const QuicPacketHeader& header, | 338 bool WritePacketHeader(const QuicPacketHeader& header, |
338 QuicDataWriter* writer); | 339 QuicDataWriter* writer); |
339 | 340 |
340 bool ProcessPublicHeader(QuicPacketPublicHeader* header); | 341 bool ProcessPublicHeader(QuicPacketPublicHeader* header); |
341 | 342 |
342 bool ProcessPacketHeader(QuicPacketHeader* header, | 343 bool ProcessPacketHeader(QuicPacketHeader* header, |
343 const QuicEncryptedPacket& packet); | 344 const QuicEncryptedPacket& packet); |
344 | 345 |
345 bool ProcessPacketSequenceNumber(QuicPacketSequenceNumber* sequence_number); | 346 bool ProcessPacketSequenceNumber( |
| 347 QuicSequenceNumberLength sequence_number_length, |
| 348 QuicPacketSequenceNumber* sequence_number); |
346 bool ProcessFrameData(); | 349 bool ProcessFrameData(); |
347 bool ProcessStreamFrame(QuicStreamFrame* frame); | 350 bool ProcessStreamFrame(QuicStreamFrame* frame); |
348 bool ProcessAckFrame(QuicAckFrame* frame); | 351 bool ProcessAckFrame(QuicAckFrame* frame); |
349 bool ProcessReceivedInfo(ReceivedPacketInfo* received_info); | 352 bool ProcessReceivedInfo(ReceivedPacketInfo* received_info); |
350 bool ProcessSentInfo(SentPacketInfo* sent_info); | 353 bool ProcessSentInfo(SentPacketInfo* sent_info); |
351 bool ProcessQuicCongestionFeedbackFrame( | 354 bool ProcessQuicCongestionFeedbackFrame( |
352 QuicCongestionFeedbackFrame* congestion_feedback); | 355 QuicCongestionFeedbackFrame* congestion_feedback); |
353 bool ProcessRstStreamFrame(QuicRstStreamFrame* frame); | 356 bool ProcessRstStreamFrame(QuicRstStreamFrame* frame); |
354 bool ProcessConnectionCloseFrame(QuicConnectionCloseFrame* frame); | 357 bool ProcessConnectionCloseFrame(QuicConnectionCloseFrame* frame); |
355 bool ProcessGoAwayFrame(QuicGoAwayFrame* frame); | 358 bool ProcessGoAwayFrame(QuicGoAwayFrame* frame); |
356 | 359 |
357 bool DecryptPayload(QuicPacketSequenceNumber packet_sequence_number, | 360 bool DecryptPayload(const QuicPacketHeader& header, |
358 QuicGuidLength guid_length, | |
359 bool version_flag, | |
360 const QuicEncryptedPacket& packet); | 361 const QuicEncryptedPacket& packet); |
361 | 362 |
362 // Returns the full packet sequence number from the truncated | 363 // Returns the full packet sequence number from the truncated |
363 // wire format version and the last seen packet sequence number. | 364 // wire format version and the last seen packet sequence number. |
364 QuicPacketSequenceNumber CalculatePacketSequenceNumberFromWire( | 365 QuicPacketSequenceNumber CalculatePacketSequenceNumberFromWire( |
| 366 QuicSequenceNumberLength sequence_number_length, |
365 QuicPacketSequenceNumber packet_sequence_number) const; | 367 QuicPacketSequenceNumber packet_sequence_number) const; |
366 | 368 |
367 // Computes the wire size in bytes of the payload of |frame|. | 369 // Computes the wire size in bytes of the payload of |frame|. |
368 size_t ComputeFrameLength(const QuicFrame& frame); | 370 size_t ComputeFrameLength(const QuicFrame& frame); |
369 | 371 |
370 static bool AppendPacketSequenceNumber( | 372 static bool AppendPacketSequenceNumber( |
| 373 QuicSequenceNumberLength sequence_number_length, |
371 QuicPacketSequenceNumber packet_sequence_number, | 374 QuicPacketSequenceNumber packet_sequence_number, |
372 QuicDataWriter* writer); | 375 QuicDataWriter* writer); |
373 | 376 |
374 bool AppendStreamFramePayload(const QuicStreamFrame& frame, | 377 bool AppendStreamFramePayload(const QuicStreamFrame& frame, |
375 QuicDataWriter* builder); | 378 QuicDataWriter* builder); |
376 bool AppendAckFramePayload(const QuicAckFrame& frame, | 379 bool AppendAckFramePayload(const QuicAckFrame& frame, |
377 QuicDataWriter* builder); | 380 QuicDataWriter* builder); |
378 bool AppendQuicCongestionFeedbackFramePayload( | 381 bool AppendQuicCongestionFeedbackFramePayload( |
379 const QuicCongestionFeedbackFrame& frame, | 382 const QuicCongestionFeedbackFrame& frame, |
380 QuicDataWriter* builder); | 383 QuicDataWriter* builder); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 // The time this frames was created. Time written to the wire will be | 428 // The time this frames was created. Time written to the wire will be |
426 // written as a delta from this value. | 429 // written as a delta from this value. |
427 QuicTime creation_time_; | 430 QuicTime creation_time_; |
428 | 431 |
429 DISALLOW_COPY_AND_ASSIGN(QuicFramer); | 432 DISALLOW_COPY_AND_ASSIGN(QuicFramer); |
430 }; | 433 }; |
431 | 434 |
432 } // namespace net | 435 } // namespace net |
433 | 436 |
434 #endif // NET_QUIC_QUIC_FRAMER_H_ | 437 #endif // NET_QUIC_QUIC_FRAMER_H_ |
OLD | NEW |