Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP/2 Parser implementation (#309). #1368

Merged
merged 69 commits into from
Mar 5, 2020

Commits on Oct 26, 2019

  1. Configuration menu
    Copy the full SHA
    71d7b7a View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2019

  1. HTTP/2 Parser implementation (#309):

    1. Changes in HPACK decoder to copy only Huffman-decoded and dynamically indexed headers;
    2. Appropriate changes in HPACK-decoder/parser unit-tests.
    aleksostapenko committed Oct 30, 2019
    Configuration menu
    Copy the full SHA
    dc71702 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b5658be View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2019

  1. Configuration menu
    Copy the full SHA
    9a57b1f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8f9a906 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2019

  1. HTTP/2 Parser implementation (#309):

    Corrections as a result of HPACK decoder/encoder/parser unit-tests debugging.
    aleksostapenko committed Nov 4, 2019
    Configuration menu
    Copy the full SHA
    fb7c80f View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2019

  1. Configuration menu
    Copy the full SHA
    e50d74d View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2019

  1. Configuration menu
    Copy the full SHA
    c935484 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2019

  1. Configuration menu
    Copy the full SHA
    f2e01bd View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2019

  1. bump copyrights

    vankoven committed Dec 4, 2019
    Configuration menu
    Copy the full SHA
    c692adb View commit details
    Browse the repository at this point in the history
  2. Divide TfwStr flags and HPACK index members

    TfwStrs often go in arrays, and there is a 1-byte alignment gap between
    TfwStr neighbours. `eolen` is always [0,2], 14-bits are enough for
    hpack index.
    vankoven committed Dec 4, 2019
    Configuration menu
    Copy the full SHA
    dae477a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8849e87 View commit details
    Browse the repository at this point in the history
  4. Update code comments

    vankoven committed Dec 4, 2019
    Configuration menu
    Copy the full SHA
    ae7ce40 View commit details
    Browse the repository at this point in the history
  5. Update Linux kernel patch

    vankoven committed Dec 4, 2019
    Configuration menu
    Copy the full SHA
    e9bf486 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e8b1f87 View commit details
    Browse the repository at this point in the history
  7. Minor style fixups

    vankoven committed Dec 4, 2019
    Configuration menu
    Copy the full SHA
    266581d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    45c9eba View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2019

  1. Merge branch 'master' into ik-1369-merge-master

    # Conflicts:
    #	tempesta_fw/http_parser.c
    #	tempesta_fw/http_sess.c
    #	tempesta_fw/t/unit/test_hpack.c
    #	tempesta_fw/t/unit/test_http_sticky.c
    vankoven committed Dec 6, 2019
    Configuration menu
    Copy the full SHA
    7b1cce0 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2019

  1. Resolve merge issues

    vankoven committed Dec 17, 2019
    Configuration menu
    Copy the full SHA
    fd48c6e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    80d2d4a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b1e6a11 View commit details
    Browse the repository at this point in the history
  4. Set-cookie was added in two branches with different processing, resol…

    …ve duplication conflicts
    vankoven committed Dec 17, 2019
    Configuration menu
    Copy the full SHA
    0620349 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d4c682d View commit details
    Browse the repository at this point in the history
  6. Fix some small comments

    krizhanovsky authored and vankoven committed Dec 17, 2019
    Configuration menu
    Copy the full SHA
    c67a387 View commit details
    Browse the repository at this point in the history
  7. Hpack state machine table in no more generated, product of generated …

    …file is used in the source tree
    vankoven committed Dec 17, 2019
    Configuration menu
    Copy the full SHA
    a5519f8 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5c77db5 View commit details
    Browse the repository at this point in the history
  9. Fix pointer assignment

    vankoven committed Dec 17, 2019
    Configuration menu
    Copy the full SHA
    a7de0eb View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2019

  1. replace bug_on with warn_on

    vankoven committed Dec 29, 2019
    Configuration menu
    Copy the full SHA
    db602d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    54fab94 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    82b7376 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    66752e4 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2019

  1. Configuration menu
    Copy the full SHA
    2d2480b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4d7eb66 View commit details
    Browse the repository at this point in the history
  3. Fix code review comments

    vankoven committed Dec 30, 2019
    Configuration menu
    Copy the full SHA
    d647d63 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1d15fab View commit details
    Browse the repository at this point in the history
  5. Fix request h2 -> http1.1 conversion

    Main changes:
    1. Keep h_tbl always valid since we need to read the table during
       response caching.
    2. Optimize header alteration for h2, use compatibility mode for http1.1
    3. Use tfw_msg_write functions to take care of all possible caveats at
       message creation stage. (E.g. headers may be longer than one page)
    
    Known issues:
    1. Body and trailer conversion is not tested due to parsing issues:
       body is not appended to the request and WARN_ON is triggered.
    vankoven committed Dec 30, 2019
    Configuration menu
    Copy the full SHA
    d306c1b View commit details
    Browse the repository at this point in the history

Commits on Dec 31, 2019

  1. Fix code review comments

    vankoven committed Dec 31, 2019
    Configuration menu
    Copy the full SHA
    0d6e7c6 View commit details
    Browse the repository at this point in the history
  2. Update saver pointer ht after tfw_http_msg_grow_hdr_tbl() calls

    When tfw_http_msg_grow_hdr_tbl() is called it relocates
    the hm->ht, but all code around the call still uses the
    previous pointer. Thus changes are written to previous table, not
    current.
    vankoven committed Dec 31, 2019
    Configuration menu
    Copy the full SHA
    1b15a89 View commit details
    Browse the repository at this point in the history
  3. Fix setting local headers

    vankoven committed Dec 31, 2019
    Configuration menu
    Copy the full SHA
    9a4c20c View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2020

  1. fix header calculations

    vankoven committed Jan 3, 2020
    Configuration menu
    Copy the full SHA
    b4e2719 View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2020

  1. Fix h2 fsm transitions

    - Don't switch fsm state on processing DATA frame header, update the
    fsm state only after the full DATA frame is processed. Otherwise the
    fsm is triggered twice and fsm closes the connection when a new portion
    of DATA frame is expected.
    - The HTTP2_STREAM_REM_HALF_CLOSED flag is set when the h2 frames are
    processed, this flag may be evalueted by http parser only when all the
    data from current h2 frame is parsed
    vankoven committed Jan 9, 2020
    Configuration menu
    Copy the full SHA
    ebe2b83 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    06d75c2 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2020

  1. Fix moving request body on h2->h1 transformation

    Body it skb list by itself, so a new function is required.
    vankoven committed Jan 10, 2020
    Configuration menu
    Copy the full SHA
    bee3246 View commit details
    Browse the repository at this point in the history
  2. Fix crash on debug builds

    vankoven committed Jan 10, 2020
    Configuration menu
    Copy the full SHA
    a31df74 View commit details
    Browse the repository at this point in the history
  3. Add todo: split message into multiple frames

    h2 recipient will reject frame if it's too big for it. Honor remote
    peer settings when send messages, or fail fast otherwise, since the
    connection will be closed anyway.
    vankoven committed Jan 10, 2020
    Configuration menu
    Copy the full SHA
    04c0fc9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f9c1644 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2ad4c3f View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2020

  1. Configuration menu
    Copy the full SHA
    2b69ff4 View commit details
    Browse the repository at this point in the history
  2. Fix null pointer dereference on modifications on h1 headers and incor…

    …renct additions of CRLF
    vankoven committed Jan 11, 2020
    Configuration menu
    Copy the full SHA
    e6b400d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e257d63 View commit details
    Browse the repository at this point in the history
  4. Add issue number for TODOs

    vankoven committed Jan 11, 2020
    Configuration menu
    Copy the full SHA
    ee0dced View commit details
    Browse the repository at this point in the history
  5. Update macro documentations

    vankoven committed Jan 11, 2020
    Configuration menu
    Copy the full SHA
    6849d75 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3cb5ec0 View commit details
    Browse the repository at this point in the history
  7. h2: fix too early fsm update for CONTINUATION frames

    Don't switch fsm state on processing frame header, update the
    fsm state only after the full frame is processed. Otherwise the
    fsm is triggered twice and fsm closes the connection when a new
    fragment of frame is expected.
    vankoven committed Jan 11, 2020
    Configuration menu
    Copy the full SHA
    f91139f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e7bd235 View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2020

  1. Fix code review comments

    vankoven committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    c114bed View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1374 from tempesta-tech/ik-fix-req-2-to-1-transform

    Fix request h2 -> http1.1 conversion
    vankoven authored Jan 21, 2020
    Configuration menu
    Copy the full SHA
    f010557 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2020

  1. Configuration menu
    Copy the full SHA
    c721aaa View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2020

  1. HTTP/2: changes in processing of headers strings (#309).

    Parse name, colon, LWS, value and RWS of HTTP/1.1-response headers into
    separate chunks to facilitate the name/value splitting and colon/OWS
    eviction during HTTP/1.1=>HTTP/2 response transformation.
    aleksostapenko committed Feb 27, 2020
    Configuration menu
    Copy the full SHA
    4dec0e8 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2020

  1. Configuration menu
    Copy the full SHA
    2d7bb75 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2020

  1. Configuration menu
    Copy the full SHA
    b5e71ac View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2020

  1. Configuration menu
    Copy the full SHA
    4f0cdd1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bb502ae View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2585ef9 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2020

  1. Bump copyrights

    vankoven committed Mar 3, 2020
    Configuration menu
    Copy the full SHA
    a841f0b View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1385 from tempesta-tech/ik-h2-parser-updates

    A few review comment fixes for http2 parser
    vankoven authored Mar 3, 2020
    Configuration menu
    Copy the full SHA
    5b7ecb5 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2020

  1. Configuration menu
    Copy the full SHA
    4f43032 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6164968 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1383 from tempesta-tech/ao-309-parser-transformat…

    …ion-h2-cache
    
    HTTP/2 implementation: HTTP/2-cache (#309).
    aleksostapenko authored Mar 4, 2020
    Configuration menu
    Copy the full SHA
    7b4fc72 View commit details
    Browse the repository at this point in the history