summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | tor-hsservice: Have Establisher provide more information to ManagerIan Jackson2023-08-293-6/+35
| |/ / | | | | | | | | | | | | | | | The establisher has a netdir; the manager generally doesn't. So it will be convenient for the establisher to provide the linkspecs and so on.
* | | Merge branch 'hop-num-todo' into 'main'Nick Mathewson2023-08-304-24/+57
|\ \ \ | |/ / |/| | | | | | | | | | | | | | tor-proto: Make HopNum indices appear 1-based in the Display impl. Closes #996 See merge request tpo/core/arti!1548
| * | tor-proto: Use HopNum::display() instead of Debug representation.Gabriela Moldovan2023-08-251-3/+3
| | |
| * | tor-proto: Remove the Display impl of HopNum (fmt).Gabriela Moldovan2023-08-251-6/+6
| | |
| * | tor-proto: Remove the Display impl of HopNum.Gabriela Moldovan2023-08-252-15/+9
| | | | | | | | | | | | | | | This removes the `Display` impl of `HopNum` and replaces its usage with `HopNum::display`.
| * | tor-proto: Add a HopNum::display function.Gabriela Moldovan2023-08-253-5/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function can be used to display a more user-friendly representation of a `HopNum`. This will print hop numbers as 1-indexed values: #1, #2, etc.. We will soon remove HopNum's Display implementation in favour of `.display()`.
| * | tor-proto: Make HopNum indices appear 1-based in the Display impl.Gabriela Moldovan2023-08-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes `HopNum`s display as 1-indexed values. This will make error messages more intuitive, because when talking about an N-hop circuit, we generally speak in terms of hops 1..N (rather than 0..N-1). Internally, our `HopNum` indices are still 0-based. Closes #996
* | | hs: Intro point selection: TODO re checking the stable flag (fmt)Ian Jackson2023-08-291-1/+1
| | | | | | | | | | | | Apply erroneous formatting as demanded by rustfmt.
* | | hs: Intro point selection: TODO re checking the stable flagIan Jackson2023-08-291-0/+1
| | |
* | | hs: Intro point selection: Actually call is_hs_intro_point() (fmt)Ian Jackson2023-08-291-5/+5
| | |
* | | hs: Intro point selection: Actually call is_hs_intro_point()Ian Jackson2023-08-292-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | Call site as per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1550#note_2936401 Plus a TODO comment with an opinion from me about this API. (Note not a TODO HSS so this is on the back burner.)
* | | tor-netdir: Add TODO about WeightRole::HsRendIan Jackson2023-08-291-0/+1
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1550#note_2936400
* | | tor-hsservice: Actually select new intro point relays (fmt)Ian Jackson2023-08-291-2/+6
| | |
* | | tor-linkspec: Provide HasRelayIds::has_any_relay_id_from (fmt)Ian Jackson2023-08-291-3/+3
| | | | | | | | | | | | Worsify formatting as demanded by rustfmt.
* | | tor-hsservice: Actually select new intro point relaysIan Jackson2023-08-291-9/+59
| | | | | | | | | | | | | | | | | | | | | | | | I doubt this would work yet because it will probably crash at startup due to the unhandled error case. Handling the error case would have a conflict with !1549 so let's do that later.
* | | tor-linkspec: Provide HasRelayIds::has_any_relay_id_fromIan Jackson2023-08-292-0/+68
| | | | | | | | | | | | | | | This seems logically necessary, and I want to use it in intro point selection.
* | | tor-netdir: Support for seleting HS intro pointsIan Jackson2023-08-292-0/+10
| | | | | | | | | | | | | | | | | | I'm quite unsure about this. Hence the TODOs. I think the API is right, though.
* | | Merge branch 'mgr-split' into 'main'Ian Jackson2023-08-291-4/+19
|\ \ \ | | | | | | | | | | | | | | | | tor-hsservice: ipt mgr: Split up idempotently_progress_things_now See merge request tpo/core/arti!1549
| * | | tor-hsservice: ipt mgr: Split up idempotently_progress_things_nowIan Jackson2023-08-251-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Break publication out of this function, which was rather long. This does seem to make conceptual sense, now I've done it. For example, note how the 2nd half didn't need &mut self, and so doesn't ever `return CONTINUE;`
* | | | Merge branch 'hashx_perf' into 'main'Ian Jackson2023-08-297-29/+31
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | hashx: Additional perf work and cleanup See merge request tpo/core/arti!1555
| * | | | hashx: Cleanup around Instruction and NUM_INSTRUCTIONSMicah Elizabeth Scott2023-08-256-28/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch tries to make some of the expressions around NUM_INSTRUCTIONS more convenient. We can import it directly where it's needed, but most uses are replaced by new type aliases for InstructionArray and InstructionVec. No change to any hashx_cachegrind iai benchmarks
| * | | | hashx: Avoid memcpy in Assembler::finalize()Micah Elizabeth Scott2023-08-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a very simple change, just passing 'self' by reference instead of value. The by-value version generates a memcpy of the entire temporary program buffer which doesn't optimize out like I expected it would. The juicy impact here is a much lower cache footprint for compilation, since we avoid having yet another temporary storage location for the program data. generate_compiled_1000x Instructions: 271682605 (-0.627292%) L1 Accesses: 341834751 (-0.813903%) L2 Accesses: 56420 (-39.48365%) RAM Accesses: 618 (-20.25806%) Estimated Cycles: 342138481 (-0.867660%)
* | | | | Merge branch 'hashx-bench-2' into 'main'Ian Jackson2023-08-294-6/+9
|\| | | | | |_|_|/ |/| | | | | | | | | | | RFC: hashx: More arrays and fewer slices See merge request tpo/core/arti!1539
| * | | RustfmtIan Jackson2023-08-253-3/+3
| | | |
| * | | RFC: hashx: Make Architecture::compile take an array refIan Jackson2023-08-254-6/+9
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generate_interp_1000x Instructions: 219216169 (No change) L1 Accesses: 278017243 (-0.000441%) L2 Accesses: 1257 (+4389.286%) RAM Accesses: 415 (-0.479616%) Estimated Cycles: 278038053 (+0.001744%) generate_interp_1000x_c Instructions: 272748034 (No change) L1 Accesses: 349932964 (No change) L2 Accesses: 76 (-1.298701%) RAM Accesses: 411 (+0.243902%) Estimated Cycles: 349947729 (+0.000009%) generate_compiled_1000x Instructions: 256896028 (+0.175731%) L1 Accesses: 342543838 (+0.131802%) L2 Accesses: 149273 (-10.34924%) RAM Accesses: 810 (-0.246305%) Estimated Cycles: 343318553 (+0.106328%) generate_compiled_1000x_c Instructions: 281855218 (No change) L1 Accesses: 362569035 (-0.000001%) L2 Accesses: 88 (+1.149425%) RAM Accesses: 473 (+0.211864%) Estimated Cycles: 362586030 (+0.000010%) interp_u64_hash_1000x Instructions: 13450926 (No change) L1 Accesses: 16622561 (+0.000024%) L2 Accesses: 28 (No change) RAM Accesses: 390 (-1.015228%) Estimated Cycles: 16636351 (-0.000817%) interp_8b_hash_1000x_c Instructions: 8618541 (No change) L1 Accesses: 12316160 (-0.000008%) L2 Accesses: 80 (No change) RAM Accesses: 433 (+0.231481%) Estimated Cycles: 12331715 (+0.000276%) compiled_u64_hash_100000x Instructions: 87311792 (+0.000520%) L1 Accesses: 94396598 (+0.000463%) L2 Accesses: 215 (+2.380952%) RAM Accesses: 774 (-0.641849%) Estimated Cycles: 94424763 (+0.000304%) compiled_8b_hash_100000x_c Instructions: 91547640 (No change) L1 Accesses: 98838166 (-0.000007%) L2 Accesses: 137 (+3.007519%) RAM Accesses: 488 (+0.618557%) Estimated Cycles: 98855931 (+0.000119%)
* | | tor-hsservice: Add TODOs for the unimplemented parts.Gabriela Moldovan2023-08-251-0/+57
| | |
* | | tor-hsservice: Get rid of an unnecessary clone.Gabriela Moldovan2023-08-251-5/+3
| | |
* | | tor-hsservice: Remove unnecessary validate() function.Gabriela Moldovan2023-08-252-29/+11
| | |
* | | tor-hsservice: If we can't build the descriptor, log the error (fmt).Gabriela Moldovan2023-08-251-12/+15
| | |
* | | tor-hsservice: If we can't build the descriptor, log the error.Gabriela Moldovan2023-08-251-3/+6
| | |
* | | tor-hsservice: Document the non-Event events handled by the Reactor.Gabriela Moldovan2023-08-251-0/+10
| | |
* | | tor-hsservice: Clarify when `descriptor` is expected to be incomplete.Gabriela Moldovan2023-08-251-0/+3
| | |
* | | tor-hsservice: Explain what UPLOAD_RATE_LIM_THRESHOLD is used for.Gabriela Moldovan2023-08-251-0/+5
| | |
* | | tor-hsservice: Document when recompute_hs_dirs should be called.Gabriela Moldovan2023-08-251-0/+8
| | |
* | | tor-hsservice: s/fetch_hsdirs/compute_hsdirs (fmt).Gabriela Moldovan2023-08-251-1/+2
| | |
* | | tor-hsservice: s/fetch_hsdirs/compute_hsdirs.Gabriela Moldovan2023-08-251-3/+3
| | |
* | | tor-hsservice: Use [v].into_iter() instead of iter::once(v).Gabriela Moldovan2023-08-251-1/+1
| | |
* | | tor-hsservice: Handle schedule_upload_rx.recv() errors.Gabriela Moldovan2023-08-251-2/+4
| | |
* | | tor-hsservice: Remove unnecessary argument from recompute_hs_dirs.Gabriela Moldovan2023-08-251-5/+9
| | |
* | | tor-hsservice: Replace the netdir before recomputing the HsDirs.Gabriela Moldovan2023-08-251-2/+2
| | |
* | | tor-hsservice: Add partial descriptor publisher reactor implementation.Gabriela Moldovan2023-08-254-10/+842
| | | | | | | | | | | | | | | | | | | | | | | | This partially implements the descriptor publisher reactor. The code still has many TODOs and there are no tests. Partially implements #977
* | | tor-hsservice: Move PublisherError to a separate module, tweak publisher API.Gabriela Moldovan2023-08-252-5/+47
| | |
* | | tor-hsservice: Make wait_for_netdir* more widely available.Gabriela Moldovan2023-08-253-63/+78
| | | | | | | | | | | | | | | `wait_for_netdir` is needed by the descriptor publisher (to compute the initial netdir).
* | | tor-hscrypto: Impl From<&HsBlindIdKeypair> for HsBlindIdKey.Gabriela Moldovan2023-08-252-0/+8
| | | | | | | | | | | | This will be used by the descriptor publisher when building descriptors.
* | | tor-hscrypto: Add a function for deriving the subcredential.Gabriela Moldovan2023-08-252-3/+16
|/ / | | | | | | | | | | This function will be used by the descriptor publisher (it needs to generate descriptors, and for that it needs the subcredential, which can be derived from the `HsBlindIdKey` and `TimePeriod`).
* | Run maint/add-warningIan Jackson2023-08-251-0/+1
| | | | | | | | Yet another new module concurrently with a new lint.
* | Merge branch 'hashx-bench-3' into 'main'Ian Jackson2023-08-255-8/+319
|\ \ | |/ |/| | | | | hashx: More arrays (redux), unsafe FixedCapacityVec See merge request tpo/core/arti!1538
| * hashx: FixedCapacityVec: Fix clippy lintsIan Jackson2023-08-241-4/+3
| |
| * RustfmtIan Jackson2023-08-244-6/+12
| |
| * hashx: FixedCapacityVec: impl Send, Sync, [Ref]UnwindSafeIan Jackson2023-08-241-0/+13
| |