[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2015-02-27 Thread Neil Craig (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14340037#comment-14340037
 ] 

Neil Craig edited comment on TS-2729 at 2/27/15 11:40 AM:
--

Hi guys

Firstly, apologies if this is the wrong place to ask.

I have ATS 5.3, compiled (with experimental plugins) from a github pull a 
couple of days ago, runnning on CentOS 6.6. I'm trying to get ATS working with 
h2 as a reverse proxy but every time I enable h2 via 
proxy.config.http2.enabled, proxying breaks. I've tried both http and https 
backends and many variants of http_ports config.

H2 is working in that the chrome/firefox indicator shows it and i can see it in 
chrome:net-internals but as i say, proxying breaks. The moment i disable h2 via 
proxy.config.http2.enabled INT 0, proxying works again (as does vanilla TLS).

I can't see anything in the logs which is helpful.

Any advice or a pointer to a better place to ask would be very gratefully 
received.

Cheers
Neil


was (Author: neil.craig):
Hi guys

Firstly, apologies if this is the wrong place to ask.

I have ATS 5.3, compiled from a github pull a couple of days ago, runnning on 
CentOS 6.6. I'm trying to get ATS working with h2 as a reverse proxy but every 
time I enable h2 via proxy.config.http2.enabled, proxying breaks. I've tried 
both http and https backends and many variants of http_ports config.

H2 is working in that the chrome/firefox indicator shows it and i can see it in 
chrome:net-internals but as i say, proxying breaks. The moment i disable h2 via 
proxy.config.http2.enabled INT 0, proxying works again (as does vanilla TLS).

I can't see anything in the logs which is helpful.

Any advice or a pointer to a better place to ask would be very gratefully 
received.

Cheers
Neil

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: Bryan Call
>  Labels: review
> Fix For: 5.3.0
>
> Attachments: 0003-h2-prototype.patch, 0004-h2-prototype.patch, 
> 0005-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch, 
> improve-mime.patch
>
>
> h2. Overview
> Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
> ATS core.
> Now, it supports the latest HTTP/2 draft version, h2-16.
> https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
> h2. How to test
> # Build ATS codes normally. you need neither any build option nor external 
> HTTP/2 library.
> # Configure settings to use https.
> # Add settings to records.config to use http2.
> {noformat}
> CONFIG proxy.config.http2.enabled INT 1
> {noformat}
> # Access to ATS by HTTP/2 client.
> h2. Descriptions of current attached patches.
> * 0003-h2-prototype.patch
> ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
> requests and respond for it. But now this code is unsafe and dirty. More 
> refactoring is required.
> h2. DONE
> * Fundamental HTTP/2 frame handling
> * Flow control
> * Some error handlings
> h2. TODO
> * Refactoring
> * More debugging
> * Write documents
> * Add test tools for HPACK, HTTP/2 frames
> h2. No plan
> * [Server 
> Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2] 
> This would probably require support for [Link 
> preload|http://w3c.github.io/preload/#interoperability-with-http-link-header]?
> * [Stream 
> Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
> * [Alternative 
> Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2015-02-12 Thread Bryan Call (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14319099#comment-14319099
 ] 

Bryan Call edited comment on TS-2729 at 2/12/15 10:30 PM:
--

Just to verity, I only have to apply the patches 000[345] and 
improve-mime.patch in order correct? 

{code}
patch -p1 < 0003-h2-prototype.patch
patch -p1 < 0004-h2-prototype.patch
patch -p1 < 0005-h2-prototype.patch
patch -p1 < improve-mime.patch
{code}


was (Author: bcall):
Just to verity, I only have to apply the patches 000[345] in order correct? 

{code}
patch -p1 < 0003-h2-prototype.patch
patch -p1 < 0004-h2-prototype.patch
patch -p1 < 0005-h2-prototype.patch
{code}

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: James Peach
>  Labels: review
> Fix For: 5.3.0
>
> Attachments: 0003-h2-prototype.patch, 0004-h2-prototype.patch, 
> 0005-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch, 
> improve-mime.patch
>
>
> h2. Overview
> Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
> ATS core.
> Now, it supports the latest HTTP/2 draft version, h2-16.
> https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
> h2. How to test
> # Build ATS codes normally. you need neither any build option nor external 
> HTTP/2 library.
> # Configure settings to use https.
> # Add settings to records.config to use http2.
> {noformat}
> CONFIG proxy.config.http2.enabled INT 1
> {noformat}
> # Access to ATS by HTTP/2 client.
> h2. Descriptions of current attached patches.
> * 0003-h2-prototype.patch
> ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
> requests and respond for it. But now this code is unsafe and dirty. More 
> refactoring is required.
> h2. DONE
> * Fundamental HTTP/2 frame handling
> * Flow control
> * Some error handlings
> h2. TODO
> * Refactoring
> * More debugging
> * Write documents
> * Add test tools for HPACK, HTTP/2 frames
> h2. No plan
> * [Server 
> Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2] 
> This would probably require support for [Link 
> preload|http://w3c.github.io/preload/#interoperability-with-http-link-header]?
> * [Stream 
> Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
> * [Alternative 
> Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2015-02-09 Thread Leif Hedstrom (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14312982#comment-14312982
 ] 

Leif Hedstrom edited comment on TS-2729 at 2/9/15 10:07 PM:


Fwiw, I'm leaving https://docs.trafficserver.apache.org with the H2 patchset 
enabled, it seems solid so far. Great work guys, very, very exciting!


was (Author: zwoop):
Fwiw, I'm leaving https://docs.trafficserver.apache.org with the H2 patchset 
enabled, it seems solid so far.

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: James Peach
>  Labels: review
> Fix For: 6.0.0
>
> Attachments: 0003-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, 
> http2-0004.patch
>
>
> h2. Overview
> Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
> ATS core.
> Now, it supports the latest HTTP/2 draft version, h2-16.
> https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
> h2. How to test
> # Build ATS codes normally. you need neither any build option nor external 
> HTTP/2 library.
> # Configure settings to use https.
> # Add settings to records.config to use http2.
> {noformat}
> CONFIG proxy.config.http2.enabled INT 1
> {noformat}
> # Access to ATS by HTTP/2 client.
> h2. Descriptions of current attached patches.
> * 0003-h2-prototype.patch
> ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
> requests and respond for it. But now this code is unsafe and dirty. More 
> refactoring is required.
> h2. DONE
> * Fundamental HTTP/2 frame handling
> * Flow control
> * Some error handlings
> h2. TODO
> * Refactoring
> * More debugging
> * Write documents
> * Add test tools for HPACK, HTTP/2 frames
> h2. No plan
> * [Server 
> Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2]
> * [Stream 
> Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
> * [Alternative 
> Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2014-11-27 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14228071#comment-14228071
 ] 

Ryo Okubo edited comment on TS-2729 at 11/28/14 7:37 AM:
-

This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade 
mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

We can test it by nghttp2 with _--upgrade_ option.
{noformat}
$ nghttp --verbose --upgrade http://localhost:8080/
[  0.006] HTTP Upgrade request
GET / HTTP/1.1
Host: localhost:8080
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c-14
HTTP2-Settings: AAMAAABkAAQAAP__
Accept: */*
User-Agent: nghttp2/0.6.1


[  0.007] HTTP Upgrade response
HTTP/1.1 101 Switching Protocols
Date: Fri, 28 Nov 2014 07:31:06 GMT
Connection: Upgrade
Server: ATS/5.3.0
Upgrade: h2c-14


[  0.007] HTTP Upgrade success
[  0.007] send SETTINGS frame 
  (niv=2)
  [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
  [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
[  0.008] recv SETTINGS frame 
  (niv=0)
[  0.008] send SETTINGS frame 
  ; ACK
  (niv=0)
[  0.008] recv SETTINGS frame 
  ; ACK
  (niv=0)
{noformat}

Processes after upgrading haven't been implemented yet.


was (Author: rokubo):
This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade 
mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: James Peach
>  Labels: review
> Fix For: 6.0.0
>
> Attachments: add_const.patch, fix_typo.patch, h2-14.patch, 
> h2_prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch
>
>
> h2. Overview
> Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
> ATS core.
> Now, it supports the latest HTTP/2 draft version, h2-14.
> https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
> h2. How to test
> # Build ATS codes normally. you need neither any build option nor external 
> HTTP/2 library.
> # Configure settings to use https.
> # Access to ATS by HTTP/2 client.
> h2. Descriptions of current attached patches.
> * h2_prototype.patch
> ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
> requests and respond for it. But now this code is unsafe and dirty. More 
> refactoring is required.
> h2. WIP
> * Improve h2_prototype
> * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2014-09-17 Thread James Peach (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14137625#comment-14137625
 ] 

James Peach edited comment on TS-2729 at 9/17/14 5:59 PM:
--

Yeh, I don't like how {{Http2FrameLength}} is implicitly endian-specific. 
Something like this would be much cleaner:

{code}
  byte_addressable_value length;
  ink_zero(length);
  memcpy_and_advance(length.bytes[4], ptr);
  memcpy_and_advance(length.bytes[3], ptr);
  memcpy_and_advance(length.bytes[2], ptr);
  // LSB length.bytes[1] is 0 (network byte order).

  hdr.length = ntohl(length.value);
{code}


was (Author: jamespeach):
Yeh, I don't like how {{Http2FrameLength}} is implicitly endian-specific.

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: James Peach
>  Labels: review
> Fix For: 6.0.0
>
> Attachments: h2-14.patch, hpack_prototype.patch, http2-0004.patch
>
>
> h2. Overview
> We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
> experimentally.
> Now, it supports HTTP/2 draft-12.
> http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
> Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
> but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
> https://github.com/tatsuhiro-t/nghttp2
> We tested NPN and ALPN negotiation.
> h2. How to test it
> * Install nghttp2 library, here is URL of this library:
> https://github.com/tatsuhiro-t/nghttp2
> * Use '--enable-http2' option to compile ATS:
> {noformat}
> $ ./configure --enable-http2
> $ make all && make install
> {noformat}
> * You can use '--with-openssl=' option.
> * Need not configure anything if you just want to test HTTP/2 without SSL.
> The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
> requests.
> * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
> for example:
> {noformat}
> # HTTP/2 without SSL
> $ nghttp -v http://localhost/b.txt
> # HTTP/2 + SSL
> $ nghttp -v https://localhost/b.txt
> {noformat}
> h2. TODO
> * -Cleanup codes.-
> * Follow -http2 draft-12- and later.
> * -Support ALPN.-
> * Add settings related to HTTP/2 into records.config.
> ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2014-09-12 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14131283#comment-14131283
 ] 

Ryo Okubo edited comment on TS-2729 at 9/12/14 8:48 AM:


Current HTTP/2 implementation supports draft-12, but it isn't latest 
specification.
After h2-14.patch is applied, you can use latest draft.


was (Author: rokubo):
Current HTTP/2 implementation supports draft-12, but it isn't latest 
specification.
After this patch is applied, you can use latest draft.

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: James Peach
>  Labels: review
> Fix For: 6.0.0
>
> Attachments: h2-14.patch, http2-0004.patch
>
>
> h2. Overview
> We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
> experimentally.
> Now, it supports HTTP/2 draft-12.
> http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
> Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
> but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
> https://github.com/tatsuhiro-t/nghttp2
> We tested NPN and ALPN negotiation.
> h2. How to test it
> * Install nghttp2 library, here is URL of this library:
> https://github.com/tatsuhiro-t/nghttp2
> * Use '--enable-http2' option to compile ATS:
> {noformat}
> $ ./configure --enable-http2
> $ make all && make install
> {noformat}
> * You can use '--with-openssl=' option.
> * Need not configure anything if you just want to test HTTP/2 without SSL.
> The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
> requests.
> * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
> for example:
> {noformat}
> # HTTP/2 without SSL
> $ nghttp -v http://localhost/b.txt
> # HTTP/2 + SSL
> $ nghttp -v https://localhost/b.txt
> {noformat}
> h2. TODO
> * -Cleanup codes.-
> * Follow -http2 draft-12- and later.
> * -Support ALPN.-
> * Add settings related to HTTP/2 into records.config.
> ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2014-04-21 Thread Masakazu Kitajo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13975506#comment-13975506
 ] 

Masakazu Kitajo edited comment on TS-2729 at 4/21/14 12:40 PM:
---

draft11.patch makes the last patch compatible with newer nghttp2 and draft-11


was (Author: maskit):
This makes the last patch compatible with newer nghttp2 and draft-11

> Add HTTP/2 support to ATS
> -
>
> Key: TS-2729
> URL: https://issues.apache.org/jira/browse/TS-2729
> Project: Traffic Server
>  Issue Type: New Feature
>  Components: HTTP/2
>Reporter: Ryo OKUBO
>  Labels: review
> Fix For: 5.0.0
>
> Attachments: draft11.patch, http2-0001.patch
>
>
> h2. Overview
> We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
> experimentally.
> Now, it supports HTTP/2 draft-10.
> http://tools.ietf.org/html/draft-ietf-httpbis-http2-10
> Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
> but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
> https://github.com/tatsuhiro-t/nghttp2
> We tested NPN and ALPN negotiation.
> h2. How to test it
> * Install nghttp2 library, here is URL of this library:
> https://github.com/tatsuhiro-t/nghttp2
> * Use '--enable-http2' option to compile ATS:
> {noformat}
> $ ./configure --enable-http2
> $ make all && make install
> {noformat}
> * You can use '--with-openssl=' option.
> * Need not configure anything if you just want to test HTTP/2 without SSL.
> The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
> requests.
> * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
> for example:
> {noformat}
> # HTTP/2 without SSL
> $ nghttp -v http://localhost/b.txt
> # HTTP/2 + SSL
> $ nghttp -v https://localhost/b.txt
> {noformat}
> h2. TODO
> * Cleanup codes.
> * Follow http2 draft-12 and later.
> * -Support ALPN.-
> * Add settings related to HTTP/2 into records.config.



--
This message was sent by Atlassian JIRA
(v6.2#6252)