Actually, I don't understand TSHttpProtocolType. Shouldn't it be
StructureType? Let's say we support a new priority scheme that is available
on both H2 and H3. What would be the TSHttpProtocolType for it?

Masakazu

On Wed, Sep 2, 2020 at 9:37 AM Masakazu Kitajo <mas...@apache.org> wrote:

> +1 I'm ok with the new function signatures that use abstract structures.
>
> However, I'm not sure if we really need that flexibility for Stream ID, I
> can't say 64-bit is big enough, but I think extensibility is not
> everything. Usability matters. Should we prepare for 128-bit stream ids
> now? Would we take the same approach for TSUrlPortGet to prepare for 32-bit
> port numbers?
>
> Masakazu
>
> On Wed, Sep 2, 2020 at 7:35 AM Brian Neradt <brian.ner...@gmail.com>
> wrote:
>
>> I updated the protocol draft with this input (notice I kept the updated
>> API
>> implementation as the second commit in the PR for the sake of comparison):
>> https://github.com/apache/trafficserver/pull/7149
>>
>> The API now looks like the following:
>>
>> tsapi TSReturnCode TSHttpTxnClientStreamIdGet(TSHttpTxn txnp,
>> TSHttpStreamId *stream_id);
>> tsapi TSReturnCode TSHttpTxnClientStreamPriorityGet(TSHttpTxn txnp,
>> TSHttpPriority *priority);
>>
>> TSHttpStreamId and TSHttpPriority are now abstract structures that can
>> reference TSHttp2StreamId and TSHttp2Priority objects. In the future we
>> can
>> expand this to include version 3 values of these. Notice that the above
>> are
>> generic to the specific HTTP protocol type used by the transaction.
>>
>> I'll hold off on updating the docs in the PR until I get confirmation that
>> this looks OK to the community.
>>
>> Thanks,
>> Brian
>>
>> On Tue, Sep 1, 2020 at 4:20 PM Brian Neradt <brian.ner...@gmail.com>
>> wrote:
>>
>> > This sounds good to me. This essentially puts the type parameter in the
>> > structure itself rather than as a separate parameter to the functions.
>> >
>> > On Tue, Sep 1, 2020 at 4:11 PM Alan Carroll
>> > <solidwallofc...@verizonmedia.com.invalid> wrote:
>> >
>> >> Sorry for chiming in late -
>> >>
>> >> Note this is extremely similar to IP addresses and I recommend we use
>> the
>> >> same solution. That is, there is a class HttpPriority which has just a
>> >> type/style/family value and possibly a length. This is an abstract
>> class
>> >> like sockaddr (which no one actually instantiates). The family
>> indicates
>> >> the concrete type, which is something like Http2Priority or
>> Http3Priority,
>> >> etc., just like sockaddr_in and sockaddr_in6. When you call the
>> priority
>> >> getter, it returns a HttpPriority* which is a pointer to a concrete
>> >> instance, the type of which is determined by the family. Again, just
>> like
>> >> getting an IP address from a socket.
>> >>
>> >
>> >
>> > --
>> > "Come to Me, all who are weary and heavy-laden, and I will
>> > give you rest. Take My yoke upon you and learn from Me, for
>> > I am gentle and humble in heart, and you will find rest for
>> > your souls. For My yoke is easy and My burden is light."
>> >
>> >     ~ Matthew 11:28-30
>> >
>>
>>
>> --
>> "Come to Me, all who are weary and heavy-laden, and I will
>> give you rest. Take My yoke upon you and learn from Me, for
>> I am gentle and humble in heart, and you will find rest for
>> your souls. For My yoke is easy and My burden is light."
>>
>>     ~ Matthew 11:28-30
>>
>

Reply via email to