python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / networking / fireqos.nix
blobb7f51a89c0e134de5c877efeae6e6a7f49d7f688
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.fireqos;
7   fireqosConfig = pkgs.writeText "fireqos.conf" "${cfg.config}";
8 in {
9   options.services.fireqos = {
10     enable = mkOption {
11       type = types.bool;
12       default = false;
13       description = lib.mdDoc ''
14         If enabled, FireQOS will be launched with the specified
15         configuration given in `config`.
16       '';
17     };
19     config = mkOption {
20       type = types.str;
21       default = "";
22       example = ''
23         interface wlp3s0 world-in input rate 10mbit ethernet
24           class web commit 50kbit
25             match tcp ports 80,443
27         interface wlp3s0 world-out input rate 10mbit ethernet
28           class web commit 50kbit
29             match tcp ports 80,443
30       '';
31       description = lib.mdDoc ''
32         The FireQOS configuration goes here.
33       '';
34     };
35   };
37   config = mkIf cfg.enable {
38     systemd.services.fireqos = {
39       description = "FireQOS";
40       after = [ "network.target" ];
41       serviceConfig = {
42         Type = "oneshot";
43         RemainAfterExit = true;
44         ExecStart = "${pkgs.firehol}/bin/fireqos start ${fireqosConfig}";
45         ExecStop = [
46           "${pkgs.firehol}/bin/fireqos stop"
47           "${pkgs.firehol}/bin/fireqos clear_all_qos"
48         ];
49       };
50     };
51   };