| 
					
				 | 
			
			
				@@ -128,6 +128,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         grpc_slice_unref_internal(exec_ctx, slice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return GRPC_ERROR_REF(p->error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       case GRPC_CHTTP2_DATA_FH_0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        s->stats.incoming.framing_bytes++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         p->frame_type = *cur; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (p->frame_type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           case 0: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,6 +160,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       /* fallthrough */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       case GRPC_CHTTP2_DATA_FH_1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        s->stats.incoming.framing_bytes++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         p->frame_size = ((uint32_t)*cur) << 24; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (++cur == end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           p->state = GRPC_CHTTP2_DATA_FH_2; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -167,6 +169,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       /* fallthrough */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       case GRPC_CHTTP2_DATA_FH_2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        s->stats.incoming.framing_bytes++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         p->frame_size |= ((uint32_t)*cur) << 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (++cur == end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           p->state = GRPC_CHTTP2_DATA_FH_3; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -175,6 +178,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       /* fallthrough */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       case GRPC_CHTTP2_DATA_FH_3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        s->stats.incoming.framing_bytes++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         p->frame_size |= ((uint32_t)*cur) << 8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (++cur == end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           p->state = GRPC_CHTTP2_DATA_FH_4; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -183,6 +187,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       /* fallthrough */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       case GRPC_CHTTP2_DATA_FH_4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        s->stats.incoming.framing_bytes++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GPR_ASSERT(stream_out != NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GPR_ASSERT(p->parsing_frame == NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         p->frame_size |= ((uint32_t)*cur); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -219,6 +224,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         uint32_t remaining = (uint32_t)(end - cur); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (remaining == p->frame_size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          s->stats.incoming.data_bytes += remaining; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (GRPC_ERROR_NONE != (error = grpc_chttp2_incoming_byte_stream_push( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       exec_ctx, p->parsing_frame, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       grpc_slice_sub(slice, (size_t)(cur - beg), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -238,6 +244,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           grpc_slice_unref_internal(exec_ctx, slice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return GRPC_ERROR_NONE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else if (remaining < p->frame_size) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          s->stats.incoming.data_bytes += remaining; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (GRPC_ERROR_NONE != (error = grpc_chttp2_incoming_byte_stream_push( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       exec_ctx, p->parsing_frame, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       grpc_slice_sub(slice, (size_t)(cur - beg), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -250,6 +257,7 @@ grpc_error *grpc_deframe_unprocessed_incoming_frames( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return GRPC_ERROR_NONE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           GPR_ASSERT(remaining > p->frame_size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          s->stats.incoming.data_bytes += p->frame_size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (GRPC_ERROR_NONE != 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               (grpc_chttp2_incoming_byte_stream_push( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   exec_ctx, p->parsing_frame, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -286,7 +294,6 @@ grpc_error *grpc_chttp2_data_parser_parse(grpc_exec_ctx *exec_ctx, void *parser, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                           grpc_chttp2_stream *s, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                           grpc_slice slice, int is_last) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* grpc_error *error = parse_inner_buffer(exec_ctx, p, t, s, slice); */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  s->stats.incoming.framing_bytes += GRPC_SLICE_LENGTH(slice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!s->pending_byte_stream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_slice_ref_internal(slice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_slice_buffer_add(&s->frame_storage, slice); 
			 |