1 /* 2 * Copyright 2020 The Netty Project 3 * 4 * The Netty Project licenses this file to you under the Apache License, 5 * version 2.0 (the "License"); you may not use this file except in compliance 6 * with the License. You may obtain a copy of the License at: 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations 14 * under the License. 15 */ 16 package io.netty.handler.codec.quic; 17 18 import io.netty.channel.ChannelOption; 19 20 /** 21 * {@link ChannelOption}s specific to QUIC. 22 */ 23 public final class QuicChannelOption<T> extends ChannelOption<T> { 24 25 /** 26 * If set to {@code true} the {@link QuicStreamChannel} will read {@link QuicStreamFrame}s and fire it through 27 * the pipeline, if {@code false} it will read {@link io.netty.buffer.ByteBuf} and translate the FIN flag to 28 * events. 29 */ 30 public static final ChannelOption<Boolean> READ_FRAMES = 31 valueOf(QuicChannelOption.class, "READ_FRAMES"); 32 33 /** 34 * Enable <a href="https://quiclog.github.io/internet-drafts/draft-marx-qlog-main-schema.html">qlog</a> 35 * for a {@link QuicChannel}. 36 */ 37 public static final ChannelOption<QLogConfiguration> QLOG = valueOf(QuicChannelOption.class, "QLOG"); 38 39 /** 40 * Use <a href="https://blog.cloudflare.com/accelerating-udp-packet-transmission-for-quic/">GSO</a> 41 * for QUIC packets if possible. 42 */ 43 public static final ChannelOption<SegmentedDatagramPacketAllocator> SEGMENTED_DATAGRAM_PACKET_ALLOCATOR = 44 valueOf(QuicChannelOption.class, "SEGMENTED_DATAGRAM_PACKET_ALLOCATOR"); 45 46 @SuppressWarnings({ "deprecation" }) 47 private QuicChannelOption() { 48 super(null); 49 } 50 }