Lines Matching +full:int +full:- +full:threshold
1 .\" Copyright (c) 2001-2003 International Computer Science Institute
43 .Fn getsockopt "int s" IPPROTO_IP MRT_INIT "void *optval" "socklen_t *optlen"
45 .Fn setsockopt "int s" IPPROTO_IP MRT_INIT "const void *optval" "socklen_t optlen"
47 .Fn getsockopt "int s" IPPROTO_IPV6 MRT6_INIT "void *optval" "socklen_t *optlen"
49 .Fn setsockopt "int s" IPPROTO_IPV6 MRT6_INIT "const void *optval" "socklen_t optlen"
60 All multicast-capable routers must run a common multicast routing
63 Protocol Independent Multicast - Sparse Mode (PIM-SM),
64 or Protocol Independent Multicast - Dense Mode (PIM-DM)
76 and must run a multicast routing capable user-level process.
84 The so-called
95 .Bd -literal
100 .Bd -literal
128 .Bd -literal
133 .Bd -literal
146 can be used to enable PIM processing in the kernel if we are running PIM-SM or
147 PIM-DM
154 .Bd -literal
199 Users who wish to rate-limit multicast datagrams should consider the use of
210 .Bd -literal
236 .Bd -literal
242 .Bd -literal
301 user-level process to install the appropriate Multicast Forwarding
305 .Bd -literal
317 .Bd -literal
351 .Bd -literal
360 .Bd -literal
373 .Bd -literal
381 .Bd -literal
393 .Bd -literal
400 .Bd -literal
410 and at the same time to allow user-level processes to take advantage of
415 between the user-level process and the kernel:
416 .Bl -enum
418 The user-level process tries to enable in the kernel the set of new
424 The user-level process uses only that set of features
429 To support backward compatibility, if the user-level process does not
447 The user-level process uses new
464 .Bd -literal
471 the pre-defined bits that the kernel API supports.
484 is read-only; in other words,
489 .Bd -literal
510 .Bd -literal
521 .Bd -literal
529 .\" .Bd -literal
533 .\" to allow (*,G) MFC entries (i.e., group-specific entries) in the kernel.
534 .\" For now this is left-out until it is clear whether
551 .Bd -literal
580 .Bd -literal
592 complete the shortest-path switch in case of PIM-SM multicast routing,
606 flag is used to specify whether the Border-bit in PIM
612 the Border-bit in the Register messages sent to the RP will be set.
618 field is used to specify the RP address (in case of PIM-SM multicast routing)
620 group G if we want to perform kernel-level PIM Register encapsulation.
629 .\" 3. Kernel-level PIM Register encapsulation
639 upcalls) for user-level encapsulation.
655 multicast data packet to the user-level process.
673 .\" in Section 4.4.1 in the PIM-SM spec
674 .\" draft-ietf-pim-sm-v2-new-05.{txt,ps}).
681 Typically, a multicast routing user-level process would need to know the
684 entries, or in case of PIM-SM it can initiate (S,G) shortest-path switch if
685 the bandwidth rate is above a threshold for example.
688 that a user-level process would periodically
692 threshold.
697 .Bl -bullet
699 If the bandwidth of a data flow satisfies some pre-defined filter,
703 The bandwidth-upcall filters are installed per (S,G).
710 because this makes the kernel-level implementation simpler,
713 user-level filtering of those <= and >= filters.
720 The bandwidth-upcall mechanism is enabled by
726 The bandwidth-upcall filters are added/deleted by the new
737 .Bd -literal
740 * measured bandwidth is above or below a threshold.
743 * bandwidth used by some data flow is above or below some threshold.
744 * This interface allows the userland to specify the threshold (in
751 * The threshold is set in packets and/or bytes per_interval.
758 * pass the threshold we deliver an upcall and we are done.
765 * When the timer fires, we compare the value with the threshold,
780 #define BW_UPCALL_UNIT_PACKETS (1 << 0) /* threshold (in packets) */
781 #define BW_UPCALL_UNIT_BYTES (1 << 1) /* threshold (in bytes) */
782 #define BW_UPCALL_GEQ (1 << 2) /* upcall if bw >= threshold */
783 #define BW_UPCALL_LEQ (1 << 3) /* upcall if bw <= threshold */
785 struct bw_data bu_threshold; /* the bw threshold */
791 /* min. threshold time interval for bandwidth measurement */
809 pseudo-algorithm:
810 .Bd -literal
816 SEND_UPCALL("measured bandwidth is >= threshold");
823 SEND_UPCALL("measured bandwidth is <= threshold");
833 <= the threshold bandwidth (within the specified measurement
844 until the threshold interval has expired to know the answer.
847 .Bd -literal
896 .Bd -literal
912 field is filled-in to
975 .Dv PIM-SM
977 .Dv PIM-DM .
979 .An -nosplit