zeek/src/event.bif
Robin Sommer 5ff7afaadb Tweaks.
2012-01-09 18:28:43 -08:00

6263 lines
278 KiB
Text

##! The events that the C/C++ core of Bro can generate. This is mostly
##! consisting of high-level network events that protocol analyzers detect,
##! but there are also several general-utility events generated by internal
##! Bro frameworks.
#
# Documentation conventions:
#
# - Use past tense for activity that has already occured.
#
# - List parameters with an empty line in between.
#
# - Within the description, reference other parameters of the same events
# as *arg*.
#
# - Order:
#
# - Short initial sentence (which doesn't need to be a sentence),
# starting with "Generated ..."
#
# - Description
#
# - Parameters
#
# - .. bro:see::
#
# - .. note::
#
# - .. todo::
## Generated at Bro initialization time. The event engine generates this
## event just before normal input processing begins. It can be used to execute
## one-time initialization code at startup. At the time a handler runs, Bro will
## have executed any global initializations and statements.
##
## .. bro:see:: bro_done
##
## .. note::
##
## When a ``bro_init`` handler executes, Bro has not yet seen any input packets
## and therefore :bro:id:`network_time` is not initialized yet. An artifact
## of that is that any timer installed in a ``bro_init`` handler will fire
## immediately with the first packet. The standard way to work around that is to
## ignore the first time the timer fires and immediately reschedule.
##
event bro_init%(%);
## Generated at Bro termination time. The event engine generates this event when
## Bro is about to terminate, either due to having exhausted reading its input
## trace file(s), receiving a termination signal, or because Bro was run without
## a network input source and has finished executing any global statements.
##
## .. bro:see:: bro_init
##
## .. note::
##
## If Bro terminates due to an invocation of :bro:id:`exit`, then this event is
## not generated.
event bro_done%(%);
## Generated when an internal DNS lookup reduces the same result as last time.
## Bro keeps an internal DNS cache for host names and IP addresses it has
## already resolved. This event is generated when subsequent lookup returns
## the same result as stored in the cache.
##
## dm: A record describing the new resolver result (which matches the old one).
##
## .. bro:see:: dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified
event dns_mapping_valid%(dm: dns_mapping%);
## Generated when an internal DNS lookup got no answer even though it had succeeded he
## past. Bro keeps an internal DNS cache for host names and IP addresses it has
## already resolved. This event is generated when a subsequent lookup does not
## produce an answer even though we have already stored a result in the cache.
##
## dm: A record describing the old resolver result.
##
## .. bro:see:: dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_valid
event dns_mapping_unverified%(dm: dns_mapping%);
## Generated when an internal DNS lookup succeeed but an earlier attempt not. had
## had succeeded he past. Bro keeps an internal DNS cache for host names and IP
## addresses it has already resolved. This event is generated when a subsequent
## lookup produces an answer for a query that was marked as failed in the cache.
##
## dm: A record describing the new resolver result.
##
## .. bro:see:: dns_mapping_altered dns_mapping_lost_name dns_mapping_unverified
## dns_mapping_valid
event dns_mapping_new_name%(dm: dns_mapping%);
## Generated when an internal DNS lookup returned zero answers even though it
## had succeeded he past. Bro keeps an internal DNS cache for host names and IP
## addresses it has already resolved. This event is generated when for a subsequent
## lookup we received answer that however was empty even though we have
## already stored a result in the cache.
##
## dm: A record describing the old resolver result.
##
## .. bro:see:: dns_mapping_altered dns_mapping_new_name dns_mapping_unverified
## dns_mapping_valid
event dns_mapping_lost_name%(dm: dns_mapping%);
## Generated when an internal DNS lookup produced a different result than in
## past. Bro keeps an internal DNS cache for host names and IP addresses it has
## already resolved. This event is generated when a subsequent lookup returns
## a different answer than we have stored in the cache.
##
## dm: A record describing the new resolver result.
##
## old_addrs: Addresses that used to be part of the returned set for the query
## described by *dm*, but are not anymore.
##
## new_addrs: Addresses that did not use to be part of the returned set for the
## query described by *dm*, but now are.
##
## .. bro:see:: dns_mapping_lost_name dns_mapping_new_name dns_mapping_unverified
## dns_mapping_valid
event dns_mapping_altered%(dm: dns_mapping, old_addrs: addr_set, new_addrs: addr_set%);
## Generated for every new connection. The event is raised with the first packet
## of a previously unknown connection. Bro uses a flow-based definition of
## "connection" here that includes not only TCP sessions but also UDP and ICMP
## flows.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection_contents partial_connection
##
## .. note::
##
## Handling this event is potentially expensive. For example, during a SYN
## flooding attack, every spoofed SYN packet will lead to a new
## event.
event new_connection%(c: connection%);
## Generated when reassembly starts for a TCP connection. The event is raised
## at the moment when Bro's TCP analyzer enables stream reassembly for a
## connection.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection partial_connection
event new_connection_contents%(c: connection%);
## Generated for an unsuccessful connection attempt. The event is raised when an
## originator unsuccessfully attempted to establish a connection. "Unsuccessful"
## is defined as at least :bro:id:`tcp_attempt_delay` seconds having elapsed since
## the originator first sent a connection establishment packet to the destination
## without seeing a reply.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_established
## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_attempt%(c: connection%);
## Generated for an established TCP connection. The event is raised when the
## initial 3-way TCP handshake has successfully finished for a connection.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_established%(c: connection%);
## Generated for a new active TCP connection if Bro did not see the initial
## handshake. The event is raised when Bro has observed traffic from each endpoint,
## but the activity did not begin with the usual connection establishment.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection new_connection_contents
##
event partial_connection%(c: connection%);
## Generated when a previously inactive endpoint attempts to close a TCP connection
## via a normal FIN handshake or an abort RST sequence. When the endpoint sent
## one of these packets, Bro waits :bro:id:`tcp_partial_close_delay` prior
## to generating the event, to give the other endpoint a chance to close the
## connection normally.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_partial_close%(c: connection%);
## Generated for a TCP connection that finished normally. The event is raised
## when a regular FIN handshake from both endpoints was observed.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_first_ACK
## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_finished%(c: connection%);
## Generated when one endpoint of a TCP connection attempted to gracefully close
## the connection, but the other endpoint is in the TCP_INACTIVE state. This can
## happen due to split routing, in which Bro only sees one side of a connection.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_half_finished%(c: connection%);
## Generated for a rejected TCP connection. The event is raised when an originator
## attempted to setup a TCP connection but the responder replied with a RST packet
## denying it.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
##
## c: The connection.
##
## .. note::
##
## If the responder does not respond at all, :bro:id:`connection_attempt` is
## raised instead. If the responder initially accepts the connection but aborts
## it later, Bro first generates :bro:id:`connection_established` and then
## :bro:id:`connection_reset`.
event connection_rejected%(c: connection%);
## Generated when an endpoint aborted a TCP connection. The event is raised
## when one endpoint of an established TCP connection aborted by sending a RST
## packet.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reused
## connection_state_remove connection_status_update connection_timeout
## expected_connection_seen new_connection new_connection_contents
## partial_connection
event connection_reset%(c: connection%);
## Generated for each still-open connection when Bro terminates.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection bro_done
event connection_pending%(c: connection%);
## Generated when a connection's internal state is about to be removed from
## memory. Bro generates this event reliably once for every connection when it
## is about to delete the internal state. As such, the event is well-suited for
## scrip-level cleanup that needs to be performed for every connection. The
## ``connection_state_remove`` event is generated not only for TCP sessions but
## also for UDP and ICMP flows.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection udp_inactivity_timeout
## tcp_inactivity_timeout icmp_inactivity_timeout conn_stats
event connection_state_remove%(c: connection%);
## Generated for a SYN packet. Bro raises this event for every SYN packet seen by
## its TCP analyzer.
##
## c: The connection.
##
## pkt: Information extracted from the SYN packet.
##
## .. bro:see:: connection_EOF connection_attempt connection_established
## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
##
## .. note::
##
## This event has quite low-level semantics and can potentially be expensive to
## generate. It should only be used if one really needs the specific information
## passed into the handler via the ``pkt`` argument. If not, handling one of the
## other ``connection_*`` events is typically the better approach.
event connection_SYN_packet%(c: connection, pkt: SYN_packet%);
## Generated for the first ACK packet seen for a TCP connection from
## its *orginator*.
##
## c: The connection.
##
## pkt: Information extracted from the SYN packet.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
##
## .. note::
##
## This event has quite low-level semantics and should be used only rarely.
event connection_first_ACK%(c: connection%);
## Generated when a TCP connection timed out. This event is raised when no activity
## was seen for an interval of at least :bro:id:`tcp_connection_linger`, and
## either one endpoint has already closed the connection or one side never
## never became active.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update expected_connection_seen
## new_connection new_connection_contents partial_connection
##
## .. note::
##
## The precise semantics of this event can be unintuitive as it only
## covers a subset of cases where a connection times out. Often, handling
## :bro:id:`connection_state_remove` is the better option. That one will be
## generated reliably when an interval of ``tcp_inactivity_timeout`` has passed
## with out any activity seen (but also for all other ways a connection may
## terminate).
event connection_timeout%(c: connection%);
## Generated when a connection 4-tuple is reused. The event is raised when Bro
## sees a new TCP session or UDP flow using a 4-tuple matching that of an earlier
## connection it still consideres active.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_reused%(c: connection%);
## Generated in regular intervals during the life time of a connection. The
## events is raised each ``connection_status_update_interval`` seconds
## and can be used to check conditions on a regular basis.
##
## c: The connection.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_status_update%(c: connection%);
## Generated at the end of reassembled TCP connections. The TCP reassembler
## raised the event once for each endpoint of a connection when it finished
## reassembling the corresponding side of the communication.
##
## c: The connection.
##
## is_orig: True if the event is raised for the originator side.
##
## .. bro:see:: connection_SYN_packet connection_attempt connection_established
## connection_external connection_finished connection_first_ACK
## connection_half_finished connection_partial_close connection_pending
## connection_rejected connection_reset connection_reused connection_state_remove
## connection_status_update connection_timeout expected_connection_seen
## new_connection new_connection_contents partial_connection
event connection_EOF%(c: connection, is_orig: bool%);
## Generated for a new connection received from the communication subsystem. Remote
## peers can inject packets into Bro's packet loop, for example via :doc:`Broccoli
## </components/broccoli/README>`. The communication systems raises this event
## with the first packet of a connection coming in this way.
event connection_external%(c: connection, tag: string%);
## Generated when a connected is seen that has previously marked as being expected.
## The function :bro:id:`expect_connection` tells Bro to expect a particular
## connection to come up, and which analyzer to associate with it. Once the
## first packet of such a connection is indeed seen, this event is raised.
##
## c: The connection.
##
## a: The analyzer that was scheduled for the connection with the
## :bro:id:`expect_connection` call. When the event is raised, that
## analyzer will already have been activated to process the connection. The
## ``count`` is one of the ``ANALYZER_*`` constants, e.g., ``ANALYZER_HTTP``.
##
## .. bro:see:: connection_EOF connection_SYN_packet connection_attempt
## connection_established connection_external connection_finished
## connection_first_ACK connection_half_finished connection_partial_close
## connection_pending connection_rejected connection_reset connection_reused
## connection_state_remove connection_status_update connection_timeout
## new_connection new_connection_contents partial_connection
##
## .. todo: We don't have a good way to document the automatically generated
## ``ANALYZER_*`` constants right now.
event expected_connection_seen%(c: connection, a: count%);
## Generated for every packet Bro sees. This is a very low-level and expensive
## event that should be avoided when at all possible. Is's usually infeasible to
## handle when processing even medium volumes of traffic in real-time. That
## said, if you work from a trace and want to do some packet-level analysis,
## it may come in handy.
##
## c: The connection the packet is part of.
##
## p: Informattion from the header of the packet that triggered the event.
##
## .. bro:see:: tcp_packet packet_contents
event new_packet%(c: connection, p: pkt_hdr%);
## Generated for every packet that has non-empty transport-layer payload. This is a
## very low-level and expensive event that should be avoided when at all possible.
## It's usually infeasible to handle when processing even medium volumes of
## traffic in real-time. It's even worse than :bro:id:`new_packet`. That said, if
## you work from a trace and want to do some packet-level analysis, it may come in
## handy.
##
## c: The connection the packet is part of.
##
## contants: The raw transport-layer payload.
##
## .. bro:see:: new_packet tcp_packet
event packet_contents%(c: connection, contents: string%);
## Generated for every TCP packet. This is a very low-level and expensive event
## that should be avoided when at all possible. It's usually infeasible to handle
## when processing even medium volumes of traffic in real-time. It's slightly
## better than :bro:id:`new_packet` because it affects only TCP, but not much. That
## said, if you work from a trace and want to do some packet-level analysis, it may
## come in handy.
##
## c: The connection the packet is part of.
##
## is_orig: True if the packet was sent by the connection's originator.
##
## flags: A string with the packet's TCP flags. In the string, each character
## corresponds to one set flag, as follows: ``S`` -> SYN; ``F`` -> FIN;
## ``R`` -> RST; ``A`` -> ACK; ``P`` -> PUSH.
##
## seq: The packet's TCP sequence number.
##
## ack: The packet's ACK number.
##
## len: The length of the TCP payload, as specified in the packet header.
##
## payload: The raw TCP payload. Note that this may less than *len* if the packet
## was not fully captured.
##
## .. bro:see:: new_packet packet_contents tcp_option tcp_contents tcp_rexmit
event tcp_packet%(c: connection, is_orig: bool, flags: string, seq: count, ack: count, len: count, payload: string%);
## Generated for each option found in a TCP header. Like many of the ``tcp_*``
## events, this is a very low-level event and potentially expensive as it may
## be raised very often.
##
## c: The connection the packet is part of.
##
## is_orig: True if the packet was sent by the connection's originator.
##
## opt: The numerical option number, as found in the TCP header.
##
## optlen: The length of the options value.
##
## .. bro:see:: tcp_packet tcp_contents tcp_rexmit
##
## .. note:: There is currently no way to get the actual option value, if any.
event tcp_option%(c: connection, is_orig: bool, opt: count, optlen: count%);
## Generated for each chunk of reassembled TCP payload. When content delivery is
## enabled for a TCP connection (via :bro:id:`tcp_content_delivery_ports_orig`,
## :bro:id:`tcp_content_delivery_ports_resp`,
## :bro:id:`tcp_content_deliver_all_orig`,
## :bro:id:`tcp_content_deliver_all_resp`), this event is raised for each chunk
## of in-order payload reconstructed from the packet stream. Note that this event
## is potentially expensive if many connections carry signficant amounts of data as
## then all that needs to be passed on to the scripting layer.
##
## c: The connection the payload is part of.
##
## is_orig: True if the packet was sent by the connection's originator.
##
## seq: The sequence number corresponding to the first byte of the payload
## chunk.
##
## payload: The raw payload, which will be non-empty.
##
## .. bro:see:: tcp_packet tcp_option tcp_rexmit
## tcp_content_delivery_ports_orig tcp_content_delivery_ports_resp
## tcp_content_deliver_all_resp tcp_content_deliver_all_orig
##
## .. note::
##
## The payload received by this event is the same that is also passed into
## application-layer protocol analyzers internally. Subsequent invocations of
## this event for the same connection receive non-overlapping in-order chunks
## of its TCP payload stream. It is however undefined what size each chunk
## has; while Bro passes the data on as soon as possible, specifics depend on
## network-level effects such as latency, acknowledgements, reordering, etc.
event tcp_contents%(c: connection, is_orig: bool, seq: count, contents: string%);
## Generated
event tcp_rexmit%(c: connection, is_orig: bool, seq: count, len: count, data_in_flight: count, window: count%);
## Generated when Bro detects a TCP retransmission inconsistency. When
## reassemling TCP stream, Bro buffers all payload until it seens the responder
## acking it. If during time, the sender resends a chunk of payload but with
## content than originally, this event will be raised.
##
## c: The connection showing the inconsistency.
##
## t1: The original payload.
##
## t2: The new payload.
##
## .. bro:see:: tcp_rexmit tcp_contents
event rexmit_inconsistency%(c: connection, t1: string, t2: string%);
## Generated when a TCP endpoint acknowledges payload that Bro did never see.
##
## c: The connection.
##
## .. bro:see:: content_gap
##
## .. note::
##
## Seeing an acknowledgment indicates that the responder of the connection
## says it has received the corresponding data. If Bro did not, it must have
## either missed one or more packets, or the responder's TCP stack is broken
## (which isn't unheard of). In practice, one will always see a few of these
## events in any larger volume of network traffic. If there are lots of them,
## however, that typically means that there is a problem with the monitoring
## infrastructure such as a tap dropping packets, split routing on the path, or
## reordering at the tap.
##
## This event reports similar situations as :bro:id:`content_gap`, though their
## specifics differ slightly. Often, however, both will be raised for the same
## connection if some of its data is missing. We should eventually merge
## the two.
event ack_above_hole%(c: connection%);
## Generated when Bro detects a gap in a reassembled TCP payload stream. This event
## is raised when Bro, while reassemling a payload stream, determines that a chunk
## of payload is missing (e.g., because the responder has already acknowledged it,
## even though Bro didn't see it).
##
## c: The connection.
##
## is_orig: True if the gap is on the originator's side.
##
## seq: The sequence number where the gap starts.
##
## length: The number of bytes missing.
##
## .. bro:see:: ack_above_hole
##
## .. note::
##
## Content gaps tend to occur occasionally for various reasons, including broken
## TCP stacks. If, however, one finds lots of them, that typically means that
## there is a problem with the monitoring infrastructure such as a tap dropping
## packets, split routing on the path, or reordering at the tap.
##
## This event reports similar situations as :bro:id:`ack_above_hole`, though
## their specifics differ slightly. Often, however, both will be raised for
## connection if some of its data is missing. We should eventually merge the
## two.
event content_gap%(c: connection, is_orig: bool, seq: count, length: count%);
## Summarizes the amount of missing TCP payload at regular intervals. Internally,
## Bro tracks (1) the number of :bro:id:`ack_above_hole` events, including the
## numer of bytes missing; and (2) the total number of TCP acks seen, with the
## total volume of bytes that have been acked. This event reports these statistics
## in :bro:id:`gap_report_freq` intervals for the purpose of determining packet
## loss.
##
## dt: The time that has past since the last ``gap_report`` interval.
##
## info: The gap statistics.
##
## .. bro:see:: content_gap ack_above_hole
##
## .. note::
##
## Bro comes with a script :doc:`/scripts/policy/misc/capture-loss` that uses
## this event to estimate packet loss and report when a predefined threshold is
## exceeded.
event gap_report%(dt: interval, info: gap_info%);
## Generated when a protocol analyzer confirms that a connection is indeed
## using that protocol. Bro's dynamic protocol detection heuristically activates
## analyzers as soon as it believe a connection *could* be using a particular
## protocol. It is then left to the corresponding analyzer to verify whether that
## is indeed the case; if so, this event will be generated.
##
## c: The connection.
##
## atype: The type of the analyzer confirming that its protocol is in
## use. The value is one of the ``ANALYZER_*`` constants. For example,
## ``ANALYZER_HTTP`` means the HTTP analyzers determined that it's indeed
## parsing an HTTP connection.
##
## aid: A unique integer ID identifying the specific *instance* of the
## analyzer *atype* that is analyzing the connection ``c``. The ID can
## be used to reference the analyzer when using builtin functions like
## :bro:id:`disable_analyzer`.
##
## .. bro:see:: protocol_violation
##
## .. note::
##
## Bro's default scripts use this event to determine the ``service`` column of
## :bro:type:`Conn::Info`: once confirmed, the protocol will be listed there
## (and thus in ``conn.log``).
event protocol_confirmation%(c: connection, atype: count, aid: count%);
## Generated when a protocol analyzer determines that a connection it is parsing
## is not conforming to the protocol it expects. Bro's dynamic protocol detection
## heuristically activates analyzers as soon as it believe a connection *could* be
## using a particular protocol. It is then left to the corresponding analyzer to
## verify whether that is indeed the case; if not, the analyzer will trigger this
## event.
##
## c: The connection.
##
## atype: The type of the analyzer confirming that its protocol is in
## use. The value is one of the ``ANALYZER_*`` constants. For example,
## ``ANALYZER_HTTP`` means the HTTP analyzers determined that it's indeed
## parsing an HTTP connection.
##
## aid: A unique integer ID identifying the specific *instance* of the
## analyzer *atype* that is analyzing the connection ``c``. The ID can
## be used to reference the analyzer when using builtin functions like
## :bro:id:`disable_analyzer`.
##
## .. bro:see:: protocol_confirmation
##
## .. note::
##
## Bro's default scripts use this event to disable an analyzer via
## :bro:id:`disable_analyzer` if it's parsing the wrong protocol. That's however
## a script-level decision and not done automatically by the event eninge.
event protocol_violation%(c: connection, atype: count, aid: count, reason: string%);
## Generated for each packet sent by a UDP flow's originator. This a potentially
## expsensive event due to the volume of UDP traffic and should be used with care.
##
## u: The connection record for the corresponding UDP flow.
##
## .. bro:see:: udp_contents udp_reply udp_session_done
event udp_request%(u: connection%);
## Generated for each packet sent by a UDP flow's responder. This a potentially
## expsensive event due to the volume of UDP traffic and should be used with care.
##
## u: The connection record for the corresponding UDP flow.
##
## .. bro:see:: udp_contents udp_request udp_session_done
event udp_reply%(u: connection%);
## Generated for UDP packets to pass on their payload. As the number of UDP
## packets can be very large, this event is normally raised only for those on
## ports configured in :bro:id:`udp_content_delivery_ports_orig` (for packets sent
## by the flow's orgininator) or :bro:id:`udp_content_delivery_ports_resp` (for
## packets sent by the flow's responder). However, delivery can be enabled for all
## UDP request and reply packets by setting :bro:id:`udp_content_deliver_all_orig`
## or :bro:id:`udp_content_deliver_all_resp`, respectively. Note that this event is
## also raised for all matching UDP packets, including empty ones.
##
## u: The connection record for the corresponding UDP flow.
##
## is_orig: True if the event is raised for the originator side.
##
## .. bro:see:: udp_reply udp_request udp_session_done
## udp_content_deliver_all_orig udp_content_deliver_all_resp
## udp_content_delivery_ports_orig udp_content_delivery_ports_resp
event udp_contents%(u: connection, is_orig: bool, contents: string%);
## Generated when a UDP session for a supported protocol has finished. Some of
## Bro's application-layer UDP analyzers flag the end of a session by raising this
## event. Currently, the analyzers for DNS, NTP, Netbios, and Syslog support this.
##
## u: The connection record for the corresponding UDP flow.
##
## .. bro:see:: udp_contents udp_reply udp_request
event udp_session_done%(u: connection%);
## Generated for all ICMP messages that are not handled separetely with dedicated
## ICMP events. Bro's ICMP analyzer handles a number of ICMP messages directly
## with dedicated events. This handlers acts as a fallback for those it doesn't.
## The *icmp* record provides more information about the message.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>`__ for more
## information about the ICMP protocol.
##
## c: The connection record for the corresponding ICMP flow.
##
## icmp: Additional ICMP-specific information augmenting the standard
## connection record *c*.
##
## .. bro:see:: icmp_echo_reply icmp_echo_request icmp_redirect
## icmp_time_exceeded icmp_unreachable
event icmp_sent%(c: connection, icmp: icmp_conn%);
## Generated for ICMP *echo request* messages.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>`__ for more
## information about the ICMP protocol.
##
## c: The connection record for the corresponding ICMP flow.
##
## icmp: Additional ICMP-specific information augmenting the standard
## connection record *c*.
##
## id: The *echo request* identifier.
##
## seq: The *echo request* sequence number.
##
## payload: The message-specific data of the packet payload, i.e., everything after
## the first 8 bytes of the ICMP header.
##
## .. bro:see:: icmp_echo_reply icmp_redirect icmp_sent
## icmp_time_exceeded icmp_unreachable
event icmp_echo_request%(c: connection, icmp: icmp_conn, id: count, seq: count, payload: string%);
## Generated for ICMP *echo reply* messages.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>`__ for more
## information about the ICMP protocol.
##
## c: The connection record for the corresponding ICMP flow.
##
## icmp: Additional ICMP-specific information augmenting the standard connection
## record *c*.
##
## id: The *echo reply* identifier.
##
## seq: The *echo reply* sequence number.
##
## payload: The message-specific data of the packet payload, i.e., everything after
## the first 8 bytes of the ICMP header.
##
## .. bro:see:: icmp_echo_request icmp_redirect icmp_sent
## icmp_time_exceeded icmp_unreachable
event icmp_echo_reply%(c: connection, icmp: icmp_conn, id: count, seq: count, payload: string%);
## Generated for ICMP *destination unreachable* messages.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>`__ for more
## information about the ICMP protocol.
##
## c: The connection record for the corresponding ICMP flow.
##
## icmp: Additional ICMP-specific information augmenting the standard connection
## record *c*.
##
## code: The ICMP code of the *unreachable* message.
##
## context: A record with specifics of the original packet that the message refers
## to. *Unreachable* messages should include the original IP header from the packet
## that triggered them, and Bro parses that into the *context* structure. Note
## that if the *unreachable* includes only a partial IP header for some reason, no
## fields of *context* will be filled out.
##
## .. bro:see:: icmp_echo_reply icmp_echo_request icmp_redirect icmp_sent
## icmp_time_exceeded
event icmp_unreachable%(c: connection, icmp: icmp_conn, code: count, context: icmp_context%);
## Generated for ICMP *time exceeded* messages.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>`__ for more
## information about the ICMP protocol.
##
## c: The connection record for the corresponding ICMP flow.
##
## icmp: Additional ICMP-specific information augmenting the standard connection
## record *c*.
##
## code: The ICMP code of the *exceeded* message.
##
## context: A record with specifics of the original packet that the message refers
## to. *Unreachable* messages should include the original IP header from the packet
## that triggered them, and Bro parses that into the *context* structure. Note that
## if the *exceeded* includes only a partial IP header for some reason, no fields
## of *context* will be filled out.
##
## .. bro:see:: icmp_echo_reply icmp_echo_request icmp_redirect icmp_sent
## icmp_unreachable
event icmp_time_exceeded%(c: connection, icmp: icmp_conn, code: count, context: icmp_context%);
## Generated for ICMP *redirect* messages.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>`__ for more
## information about the ICMP protocol.
##
## c: The connection record for the corresponding ICMP flow.
##
## icmp: Additional ICMP-specific information augmenting the standard connection
## record *c*.
##
## a: The new destination address the message is redirecting to.
##
## .. bro:see:: icmp_echo_reply icmp_echo_request icmp_sent
## icmp_time_exceeded icmp_unreachable
event icmp_redirect%(c: connection, icmp: icmp_conn, a: addr%);
## Generated when a TCP connection terminated, passing on statistics about the
## two endpoints. This event is always generated when Bro flushes the internal
## connection state, independent of how a connection terminates.
##
## c: The connection.
##
## os: Statistics for the originator endpoint.
##
## rs: Statistics for the responder endpoint.
##
## .. bro:see:: connection_state_remove
event conn_stats%(c: connection, os: endpoint_stats, rs: endpoint_stats%);
## Generated for unexpected activity related to a specific connection. When
## Bro's packet analysis encounters activity that does not conform to a protocol's
## specification, it raises one of the ``*_weird`` events to report that. This
## event is raised if the activity is tied directly to a specific connection.
##
## name: A unique name for the specific type of "weird" situation. Bro's default
## scripts use this name in filtering policies that specify which "weirds" are
## worth reporting.
##
## c: The corresponding connection.
##
## addl: Optional additional context further describing the situation.
##
## .. bro:see:: flow_weird net_weird
##
## .. note:: "Weird" activity is much more common in real-world network traffic
## than one would intuitively expect. While in principle, any protocol violation
## could be an attack attempt, it's much more likely that an endpoint's
## implementation interprets an RFC quite liberally.
event conn_weird%(name: string, c: connection, addl: string%);
## Generated for unexpected activity related to a pair of hosts, but independent
## of a specific connection. When Bro's packet analysis encounters activity that
## does not conform to a protocol's specification, it raises one of the ``*_weird``
## event to report that. This event is raised if the activity is related to a
## pair of hosts, yet not to a specific connection between them.
##
## name: A unique name for the specific type of "weird" situation. Bro's default
## scripts use this name in filtering policies that specify which "weirds" are
## worth reporting.
##
## src: The source address corresponding to the activity.
##
## dst: The destination address corresponding to the activity.
##
## .. bro:see:: conn_weird net_weird
##
## .. note:: "Weird" activity is much more common in real-world network traffic
## than one would intuitively expect. While in principle, any protocol violation
## could be an attack attempt, it's much more likely that an endpoint's
## implementation interprets an RFC quite liberally.
event flow_weird%(name: string, src: addr, dst: addr%);
## Generated for unexpected activity that is not tied to a specific connection
## or pair of hosts. When Bro's packet analysis encounters activity that
## does not conform to a protocol's specification, it raises one of the
## ``*_weird`` event to report that. This event is raised if the activity is
## not tied directly to a specific connection or pair of hosts.
##
## name: A unique name for the specific type of "weird" situation. Bro's default
## scripts use this name in filtering policies that specify which "weirds" are
## worth reporting.
##
## .. bro:see:: flow_weird
##
## .. note:: "Weird" activity is much more common in real-world network traffic
## than one would intuitively expect. While in principle, any protocol violation
## could be an attack attempt, it's much more likely that an endpoint's
## implementation interprets an RFC quite liberally.
event net_weird%(name: string%);
## Generated regularly for the purpose of profiling Bro's processing. This event
## is raised for every :bro:id:`load_sample_freq` packet. For these packets,
## Bro records script-level functions executed during their processing as well as
## further internal locations. By sampling the processing in this form, one can
## understand where Bro spends its time.
##
## samples: A set with functions and locations seens during the processing of
## the sampled packet.
##
## CPU: The CPU time spent on processing the sampled.
##
## dmem: The difference in memory usage caused by processing the sampled packet.
event load_sample%(samples: load_sample_info, CPU: interval, dmem: int%);
## Generated for ARP requests.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Address_Resolution_Protocol>`__ for
## more information about the ARP protocol.
##
## mac_src: The request's source MAC address.
##
## mac_dst: The request's destination MAC address.
##
## SPA: The sender protocol address.
##
## SHA: The sender hardware address.
##
## TPA: The target protocol address.
##
## THA: The target hardware address.
##
## .. bro:see:: arp_reply bad_arp
event arp_request%(mac_src: string, mac_dst: string, SPA: addr, SHA: string,
TPA: addr, THA: string%);
## Generated for ARP replies.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Address_Resolution_Protocol>`__ for
## more information about the ARP protocol.
##
## mac_src: The replies's source MAC address.
##
## mac_dst: The replies's destination MAC address.
##
## SPA: The sender protocol address.
##
## SHA: The sender hardware address.
##
## TPA: The target protocol address.
##
## THA: The target hardware address.
##
## .. bro:see:: arp_request bad_arp
event arp_reply%(mac_src: string, mac_dst: string, SPA: addr, SHA: string,
TPA: addr, THA: string%);
## Generated for ARP packets that Bro cannot interpret. Examples are packets with
## non-standard hardware address formats or hardware addresses that not match the
## originator of the packet.
##
## SPA: The sender protocol address.
##
## SHA: The sender hardware address.
##
## TPA: The target protocol address.
##
## THA: The target hardware address.
##
## explanation: A short description of why the ARP packet is considered "bad".
##
## .. bro:see:: arp_reply arp_request
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event bad_arp%(SPA: addr, SHA: string, TPA: addr, THA: string, explanation: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_have bittorrent_peer_interested bittorrent_peer_keep_alive
## bittorrent_peer_not_interested bittorrent_peer_piece bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_handshake%(c: connection, is_orig: bool,
reserved: string, info_hash: string, peer_id: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_not_interested bittorrent_peer_piece bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_keep_alive%(c: connection, is_orig: bool%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown bittorrent_peer_weird
event bittorrent_peer_choke%(c: connection, is_orig: bool%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request
## bittorrent_peer_unknown bittorrent_peer_weird
event bittorrent_peer_unchoke%(c: connection, is_orig: bool%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_keep_alive
## bittorrent_peer_not_interested bittorrent_peer_piece bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_interested%(c: connection, is_orig: bool%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_piece bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_not_interested%(c: connection, is_orig: bool%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_interested bittorrent_peer_keep_alive
## bittorrent_peer_not_interested bittorrent_peer_piece bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_have%(c: connection, is_orig: bool, piece_index: count%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_cancel bittorrent_peer_choke bittorrent_peer_handshake
## bittorrent_peer_have bittorrent_peer_interested bittorrent_peer_keep_alive
## bittorrent_peer_not_interested bittorrent_peer_piece bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_bitfield%(c: connection, is_orig: bool, bitfield: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_request%(c: connection, is_orig: bool, index: count,
begin: count, length: count%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_port
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_piece%(c: connection, is_orig: bool, index: count,
begin: count, piece_length: count%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown bittorrent_peer_weird
event bittorrent_peer_cancel%(c: connection, is_orig: bool, index: count,
begin: count, length: count%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_request bittorrent_peer_unchoke bittorrent_peer_unknown
## bittorrent_peer_weird
event bittorrent_peer_port%(c: connection, is_orig: bool, listen_port: port%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_weird
event bittorrent_peer_unknown%(c: connection, is_orig: bool, message_id: count,
data: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown
event bittorrent_peer_weird%(c: connection, is_orig: bool, msg: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown bittorrent_peer_weird
event bt_tracker_request%(c: connection, uri: string,
headers: bt_tracker_headers%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown bittorrent_peer_weird
event bt_tracker_response%(c: connection, status: count,
headers: bt_tracker_headers,
peers: bittorrent_peer_set,
benc: bittorrent_benc_dir%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown bittorrent_peer_weird
event bt_tracker_response_not_ok%(c: connection, status: count,
headers: bt_tracker_headers%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/BitTorrent_(protocol)>`__ for more
## information about the BitTorrent protocol.
##
## .. bro:see:: bittorrent_peer_bitfield bittorrent_peer_cancel bittorrent_peer_choke
## bittorrent_peer_handshake bittorrent_peer_have bittorrent_peer_interested
## bittorrent_peer_keep_alive bittorrent_peer_not_interested bittorrent_peer_piece
## bittorrent_peer_port bittorrent_peer_request bittorrent_peer_unchoke
## bittorrent_peer_unknown bittorrent_peer_weird
event bt_tracker_weird%(c: connection, is_orig: bool, msg: string%);
## Generated for Finger requests.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Finger_protocol>`__ for more
## information about the Finger protocol.
##
## c: The connection.
##
## full: True if verbose information is requested (``/W`` switch).
##
## username: The request's user name.
##
## hostname: The request's host name.
##
## .. bro:see:: finger_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event finger_request%(c: connection, full: bool, username: string, hostname: string%);
## Generated for Finger replies.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Finger_protocol>`__ for more
## information about the Finger protocol.
##
## c: The connection.
##
## reply_line: The reply as returned by the server
##
## .. bro:see:: finger_request
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event finger_reply%(c: connection, reply_line: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Gnutella>`__ for more
## information about the Gnutella protocol.
##
## .. bro:see:: gnutella_binary_msg gnutella_establish gnutella_http_notify
## gnutella_not_establish gnutella_partial_binary_msg gnutella_signature_found
##
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event gnutella_text_msg%(c: connection, orig: bool, headers: string%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Gnutella>`__ for more
## information about the Gnutella protocol.
##
## .. bro:see:: gnutella_establish gnutella_http_notify gnutella_not_establish
## gnutella_partial_binary_msg gnutella_signature_found gnutella_text_msg
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event gnutella_binary_msg%(c: connection, orig: bool, msg_type: count,
ttl: count, hops: count, msg_len: count,
payload: string, payload_len: count,
trunc: bool, complete: bool%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Gnutella>`__ for more
## information about the Gnutella protocol.
##
## .. bro:see:: gnutella_binary_msg gnutella_establish gnutella_http_notify
## gnutella_not_establish gnutella_signature_found gnutella_text_msg
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event gnutella_partial_binary_msg%(c: connection, orig: bool,
msg: string, len: count%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Gnutella>`__ for more
## information about the Gnutella protocol.
##
## .. bro:see:: gnutella_binary_msg gnutella_http_notify gnutella_not_establish
## gnutella_partial_binary_msg gnutella_signature_found gnutella_text_msg
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event gnutella_establish%(c: connection%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Gnutella>`__ for more
## information about the Gnutella protocol.
##
## .. bro:see:: gnutella_binary_msg gnutella_establish gnutella_http_notify
## gnutella_partial_binary_msg gnutella_signature_found gnutella_text_msg
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event gnutella_not_establish%(c: connection%);
## TODO.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Gnutella>`__ for more
## information about the Gnutella protocol.
##
## .. bro:see:: gnutella_binary_msg gnutella_establish gnutella_not_establish
## gnutella_partial_binary_msg gnutella_signature_found gnutella_text_msg
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event gnutella_http_notify%(c: connection%);
## Generated for Ident requests.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/indent_protocol>`__ for more
## information about the Ident protocol.
##
## c: The connection.
##
## lport: The request's local port.
##
## rport: The request's remote port.
##
## .. bro:see:: ident_error ident_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event ident_request%(c: connection, lport: port, rport: port%);
## Generated for Ident replies.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/indent_protocol>`__ for more
## information about the Ident protocol.
##
## c: The connection.
##
## lport: The corresponding request's local port.
##
## rport: The corresponding request's remote port.
##
## user_id: The user id returned by the reply.
##
## system: The operating system returned by the reply.
##
## .. bro:see:: ident_error ident_request
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event ident_reply%(c: connection, lport: port, rport: port, user_id: string, system: string%);
## Generated for Ident error replies.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/indent_protocol>`__ for more
## information about the Ident protocol.
##
## c: The connection.
##
## lport: The corresponding request's local port.
##
## rport: The corresponding request's remote port.
##
## line: The error description returned by the reply.
##
## .. bro:see:: ident_reply ident_request
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event ident_error%(c: connection, lport: port, rport: port, line: string%);
## Generated for Telnet/Rlogin login failures. The *login* analyzer inspects
## Telnet/Rlogin sessions to heuristically extract username and password
## information as well as the text returned by the login server. This event is
## raised if a login attempt appears to have been unsuccessful.
##
## c: The connection.
##
## user: The user name tried.
##
## client_user: For Telnet connections, this is an empty string, but for Rlogin
## connections, it is the client name passed in the initial authentication
## information (to check against .rhosts).
##
## password: The password tried.
##
## line: line is the line of text that led the analyzer to conclude that the
## authentication had failed.
##
## .. bro:see:: login_confused login_confused_text login_display login_input_line
## login_output_line login_prompt login_success login_terminal direct_login_prompts
## get_login_state login_failure_msgs login_non_failure_msgs login_prompts login_success_msgs
## login_timeouts set_login_state
##
## .. note:: The login analyzer depends on a set of script-level variables that
## need to configured with patterns identifying login attempts. This configuration
## has not yet been ported over from Bro 1.5 to Bro 2.x, and the analyzer is
## therefore not directly usable at the moment.
##
## .. todo: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_failure%(c: connection, user: string, client_user: string, password: string, line: string%);
## Generated for successful Telnet/Rlogin logins. The *login* analyzer inspects
## Telnet/Rlogin sessions to heuristically extract username and password
## information as well as the text returned by the login server. This event is
## raised if a login attempt appears to have been successful.
##
## c: The connection.
##
## user: The user name used.
##
## client_user: For Telnet connections, this is an empty string, but for Rlogin
## connections, it is the client name passed in the initial authentication
## information (to check against .rhosts).
##
## password: The password used.
##
## line: line is the line of text that led the analyzer to conclude that the
## authentication had succeeded.
##
## .. bro:see:: login_confused login_confused_text login_display login_failure
## login_input_line login_output_line login_prompt login_terminal
## direct_login_prompts get_login_state login_failure_msgs login_non_failure_msgs
## login_prompts login_success_msgs login_timeouts set_login_state
##
## .. note:: The login analyzer depends on a set of script-level variables that
## need to configured with patterns identifying login attempts. This configuration
## has not yet been ported over from Bro 1.5 to Bro 2.x, and the analyzer is
## therefore not directly usable at the moment.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_success%(c: connection, user: string, client_user: string, password: string, line: string%);
## Generated for lines of input on Telnet/Rlogin sessions. The line will have
## control characters (such as in-band Telnet options) removed.
##
## c: The connection.
##
## line: The input line.
##
## .. bro:see:: login_confused login_confused_text login_display login_failure
## login_output_line login_prompt login_success login_terminal rsh_request
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_input_line%(c: connection, line: string%);
## Generated for lines of output on Telnet/Rlogin sessions. The line will have
## control characters (such as in-band Telnet options) removed.
##
## c: The connection.
##
## line: The ouput line.
##
## .. bro:see:: login_confused login_confused_text login_display login_failure
## login_input_line login_prompt login_success login_terminal rsh_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_output_line%(c: connection, line: string%);
## Generated when tracking of Telnet/Rlogin authentication failed. As Bro's *login*
## analyzer uses a number of heuristics to extract authentication information, it
## may become confused. If it can no longer correctly track the authentication
## dialog, it raised this event.
##
## c: The connection.
##
## msg: Gives the particular problem the heuristics detected (for example,
## ``multiple_login_prompts`` means that the engine saw several login prompts in
## a row, without the type-ahead from the client side presumed necessary to cause
## them)
##
## line: The line of text that caused the heuristics to conclude they were
## confused.
##
## .. bro:see:: login_confused_text login_display login_failure login_input_line login_output_line
## login_prompt login_success login_terminal direct_login_prompts get_login_state
## login_failure_msgs login_non_failure_msgs login_prompts login_success_msgs
## login_timeouts set_login_state
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_confused%(c: connection, msg: string, line: string%);
## Generated after getting confused while tracking a Telnet/Rlogin authentication
## dialog. The *login* analyzer generates this even for every line of user input
## after it has reported :bro:id:`login_confused` for a connection.
##
## c: The connection.
##
## line: The line the user typed.
##
## .. bro:see:: login_confused login_display login_failure login_input_line
## login_output_line login_prompt login_success login_terminal direct_login_prompts
## get_login_state login_failure_msgs login_non_failure_msgs login_prompts
## login_success_msgs login_timeouts set_login_state
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_confused_text%(c: connection, line: string%);
## Generated for clients transmitting a terminal type in an Telnet session. This
## information is extracted out of environment variables sent as Telnet options.
##
## c: The connection.
##
## terminal: The TERM value transmitted.
##
## .. bro:see:: login_confused login_confused_text login_display login_failure
## login_input_line login_output_line login_prompt login_success
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_terminal%(c: connection, terminal: string%);
## Generated for clients transmitting a X11 DISPLAY in a Telnet session. This
## information is extracted out of environment variables sent as Telnet options.
##
## c: The connection.
##
## terminal: The DISPLAY transmitted.
##
## .. bro:see:: login_confused login_confused_text login_failure login_input_line
## login_output_line login_prompt login_success login_terminal
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_display%(c: connection, display: string%);
## Generated when a Telnet authentication has been successful. The Telnet protocol
## includes options for negotiating authentication. When such an option is sent
## from client to server and the server replies that it accepts the authentication,
## then the event engine generates this event.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## name: The authenticated name.
##
## c: The connection.
##
## .. bro:see:: authentication_rejected authentication_skipped login_success
##
## .. note:: This event inspects the corresponding Telnet option while :bro:id:`login_success`
## heuristically determines success by watching session data.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event authentication_accepted%(name: string, c: connection%);
## Generated when a Telnet authentication has been unsuccessful. The Telnet
## protocol includes options for negotiating authentication. When such an option
## is sent from client to server and the server replies that it did not accept the
## authentication, then the event engine generates this event.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## name: The attempted authentication name.
##
## c: The connection.
##
## .. bro:see:: authentication_accepted authentication_skipped login_failure
##
## .. note:: This event inspects the corresponding Telnet option while :bro:id:`login_success`
## heuristically determines failure by watching session
## data.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event authentication_rejected%(name: string, c: connection%);
## Generated when for Telnet/Rlogin sessions when a pattern match indicates
## that no authentication is performed.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## c: The connection.
##
## .. bro:see:: authentication_accepted authentication_rejected direct_login_prompts
## get_login_state login_failure_msgs login_non_failure_msgs login_prompts
## login_success_msgs login_timeouts set_login_state
##
## .. note:: The login analyzer depends on a set of script-level variables that
## need to be configured with patterns identifying actvity. This configuration has
## not yet been ported over from Bro 1.5 to Bro 2.x, and the analyzer is therefore
## not directly usable at the moment.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event authentication_skipped%(c: connection%);
## Generated for clients transmitting a terminal prompt in a Telnet session. This
## information is extracted out of environment variables sent as Telnet options.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## c: The connection.
##
## terminal: The TTYPROMPT transmitted.
##
## .. bro:see:: login_confused login_confused_text login_display login_failure
## login_input_line login_output_line login_success login_terminal
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event login_prompt%(c: connection, prompt: string%);
## Generated for Telnet sessions when encryption is activated. The Telnet protoco;
## includes options for negotiating encryption. When such a series of options is
## successfully negotiated, the event engine generates this event.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## c: The connection.
##
## .. bro:see:: authentication_accepted authentication_rejected authentication_skipped
## login_confused login_confused_text login_display login_failure login_input_line
## login_output_line login_prompt login_success login_terminal
event activating_encryption%(c: connection%);
## Generated for inconsistent Telnet options observed. Telnet options are specified
## by the client and server stating which options they are willing to support
## vs. which they are not, and then instructing one another which in fact they
## should or should not use for the current connection. If the event engine sees
## a peer violate either what the other peer has instructed it to do, or what it
## itself offered in terms of options in the past, then the engine generates an
## inconsistent_option event.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## c: The connection.
##
## .. bro:see:: bad_option bad_option_termination authentication_accepted
## authentication_rejected authentication_skipped login_confused
## login_confused_text login_display login_failure login_input_line
## login_output_line login_prompt login_success login_terminal
event inconsistent_option%(c: connection%);
## Generated for an ill-formed or unrecognized Telnet option.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## c: The connection.
##
## .. bro:see:: inconsistent_option bad_option_termination authentication_accepted
## authentication_rejected authentication_skipped login_confused
## login_confused_text login_display login_failure login_input_line
## login_output_line login_prompt login_success login_terminal
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event bad_option%(c: connection%);
## Generated for a Telnet option that's incorrectly terminated.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Telnet>`__ for more information
## about the Telnet protocol.
##
## .. bro:see:: inconsistent_option bad_option authentication_accepted
## authentication_rejected authentication_skipped login_confused
## login_confused_text login_display login_failure login_input_line
## login_output_line login_prompt login_success login_terminal
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event bad_option_termination%(c: connection%);
## Generated for client side commands on an RSH connection.
##
## See `RFC 1258 <http://tools.ietf.org/html/rfc1258>`__ for more information about
## the Rlogin/Rsh protocol.
##
## c: The connection.
##
## client_user: The client-side user name as sent in the initial protocol
## handshake.
##
## client_user: The server-side user name as sent in the initial protocol
## handshake.
##
## line: The command line sent in the request.
##
## new_session: True if this is the first command of the Rsh session.
##
## .. bro:see:: rsh_reply login_confused login_confused_text login_display
## login_failure login_input_line login_output_line login_prompt login_success
## login_terminal
##
## .. note: For historical reasons, these events are separate from the ``login_``
## events. Ideally, they would all be handled uniquely.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event rsh_request%(c: connection, client_user: string, server_user: string, line: string, new_session: bool%);
## Generated for client side commands on an RSH connection.
##
## See `RFC 1258 <http://tools.ietf.org/html/rfc1258>`__ for more information about
## the Rlogin/Rsh protocol.
##
## c: The connection.
##
## client_user: The client-side user name as sent in the initial protocol
## handshake.
##
## client_user: The server-side user name as sent in the initial protocol
## handshake.
##
## line: The command line sent in the request.
##
## new_session: True if this is the first command of the Rsh session.
##
## .. bro:see:: rsh_request login_confused login_confused_text login_display
## login_failure login_input_line login_output_line login_prompt login_success
## login_terminal
##
## .. note: For historical reasons, these events are separate from the ``login_``
## events. Ideally, they would all be handled uniquely.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event rsh_reply%(c: connection, client_user: string, server_user: string, line: string%);
## Generated for client-side FTP commands.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/File_Transfer_Protocol>`__ for more
## information about the FTP protocol.
##
## c: The connection.
##
## command: The FTP command issued by the client (without any arguments).
##
## arg: The arguments going with the command.
##
## .. bro:see:: ftp_reply fmt_ftp_port parse_eftp_port
## parse_ftp_epsv parse_ftp_pasv parse_ftp_port
event ftp_request%(c: connection, command: string, arg: string%) &group="ftp";
## Generated for server-side FTP replies.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/File_Transfer_Protocol>`__ for more
## information about the FTP protocol.
##
## c: The connection.
##
## code: The numerical response code the server responded with.
##
## msg: The textual message of the response.
##
## cont_resp: True if the reply line is tagged as being continued to the next line.
## If so, further events will be raised and a handler may want to reassemle the
## pieces before processing the response any further.
##
## .. bro:see:: ftp_request fmt_ftp_port parse_eftp_port
## parse_ftp_epsv parse_ftp_pasv parse_ftp_port
event ftp_reply%(c: connection, code: count, msg: string, cont_resp: bool%) &group="ftp";
## Generated for client-side SMTP commands.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>`__
## for more information about the SMTP protocol.
##
## c: The connection.
##
## is_orig: True if the sender of the command is the originator of the TCP
## connection. Note that this is not redundant: the SMTP ``TURN`` command allows
## client and server to flip roles on established SMTP sessions, and hence a
## "request" might still come from the TCP-level responder. In practice, however,
## that will rarely happen as TURN is considered insecure and rarely used.
##
## command: The request's command, without any arguments.
##
## arg: The request command's arguments.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_entity_data mime_event mime_one_header mime_segment_data
## smtp_data smtp_reply
##
## .. note:: Bro does not support the newer ETRN extension yet.
event smtp_request%(c: connection, is_orig: bool, command: string, arg: string%) &group="smtp";
## Generated for server-side SMTP commands.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>`__
## for more information about the SMTP protocol.
##
## c: The connection.
##
## is_orig: True if the sender of the command is the originator of the TCP
## connection. Note that this is not redundant: the SMTP ``TURN`` command
## allows client and server to flip roles on established SMTP sessions,
## and hence a "reply" might still come from the TCP-level originator. In
## practice, however, that will rarely happen as TURN is considered insecure
## and rarely used.
##
## code: The reply's numerical code.
##
## msg: The reply's textual description.
##
## cont_resp: True if the reply line is tagged as being continued to the next line.
## If so, further events will be raised and a handler may want to reassemle the
## pieces before processing the response any further.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_entity_data mime_event mime_one_header mime_segment_data
## smtp_data smtp_request
##
## .. note:: Bro doesn't support the newer ETRN extension yet.
event smtp_reply%(c: connection, is_orig: bool, code: count, cmd: string, msg: string, cont_resp: bool%) &group="smtp";
## Generated for DATA transmitted on SMTP sessions. This event is raised for
## subsequent chunks of raw data following the ``DATA`` SMTP command until the
## corresponding end marker ``.`` is seen. A handler may want to reassembly
## the pieces as they come in if stream-analysis is required.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>`__
## for more information about the SMTP protocol.
##
## c: The connection.
##
## is_orig: True if the sender of the data is the originator of the TCP
## connection.
##
## data: The raw data. Note that the size of each chunk is undefined and
## depends on specifics of the underlying TCP connection.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_entity_data mime_event mime_one_header mime_segment_data
## smtp_reply smtp_request skip_smtp_data
##
## .. note:: This event received the unprocessed raw data. There is a separate
## set ``mime_*`` events that strip out the outer MIME-layer of emails and provide
## structured access to their content.
event smtp_data%(c: connection, is_orig: bool, data: string%) &group="smtp";
## Generated for unexpected activity on SMTP sessions. The SMTP analyzer tracks the
## state of SMTP sessions and reports commands and other activity with this event
## that it sees even though it would not expect so at the current point of the
## communication.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>`__
## for more information about the SMTP protocol.
##
## c: The connection.
##
## is_orig: True if the sender of the unexpected activity is the originator of the
## TCP connection.
##
## msg: A descriptive message of what was unexpected.
##
## detail: The actual SMTP line triggering the event.
##
## .. bro:see:: smtp_data smtp_request smtp_reply
event smtp_unexpected%(c: connection, is_orig: bool, msg: string, detail: string%) &group="smtp";
## Generated when starting to parse a email MIME entity. MIME is a
## protocol-independent data format for encoding text and files, along with
## corresponding meta-data, for transmission. Bro raises this event when it begin
## parsing a MIME entity extracted from an email protocol.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## .. bro:see:: mime_all_data mime_all_headers mime_content_hash mime_end_entity
## mime_entity_data mime_event mime_one_header mime_segment_data smtp_data
## http_begin_entity
##
## .. note:: Bro also extracts MIME entities from HTTP session. For those, however,
## it raises :bro:id:`http_begin_entity` instead.
event mime_begin_entity%(c: connection%);
## Generated when finishing parsing an email MIME entity. MIME is a
## protocol-independent data format for encoding text and files, along with
## corresponding meta-data, for transmission. Bro raises this event when it
## finished parsing a MIME entity extracted from an email protocol.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_entity_data mime_event mime_one_header mime_segment_data smtp_data
## http_end_entity
##
## .. note:: Bro also extracts MIME entities from HTTP session. For those, however,
## it raises :bro:id:`http_end_entity` instead.
event mime_end_entity%(c: connection%);
## Generated for individual MIME headers extracted from email MIME
## entities. MIME is a protocol-independent data format for encoding text and
## files, along with corresponding meta-data, for transmission.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## h: The parsed MIME header.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_entity_data mime_event mime_segment_data
## http_header http_all_headers
##
## .. note:: Bro also extracts MIME headers from HTTP sessions. For those, however,
## it raises :bro:id:`http_header` instead.
event mime_one_header%(c: connection, h: mime_header_rec%);
## Generated for MIME headers extracted from email MIME entities, passing all
## headers at once. MIME is a protocol-independent data format for encoding text
## and files, along with corresponding meta-data, for transmission.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## hlist: A *table* containing all headers extracted from the current entity.
## The table is indexed by the position of the header (1 for the first, 2 for the
## second, etc.).
##
## .. bro:see:: mime_all_data mime_begin_entity mime_content_hash mime_end_entity
## mime_entity_data mime_event mime_one_header mime_segment_data
## http_header http_all_headers
##
## .. note:: Bro also extracts MIME headers from HTTP sessions. For those, however,
## it raises :bro:id:`http_header` instead.
event mime_all_headers%(c: connection, hlist: mime_header_list%);
## Generated for chunks of decoded MIME data from email MIME entities. MIME
## is a protocol-independent data format for encoding text and files, along with
## corresponding meta-data, for transmission. As Bro parses the data of an entity,
## it raises a sequence of these events, each coming as soon as a new chunk of
## data is available. In contrast, there is also :bro:id:`mime_entity_data`, which
## passes all of an entities data at once in a single block. While the latter is
## more convinient to handle, ``mime_segment_data`` is more efficient as Bro does
## not need to buffer the data. Thus, if possible, this event should be prefered.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## length: The length of *data*.
##
## data: The raw data of one segment of the current entity.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_entity_data mime_event mime_one_header http_entity_data
## mime_segment_length mime_segment_overlap_length
##
## .. note:: Bro also extracts MIME data from HTTP sessions. For those, however, it
## raises :bro:id:`http_entity_data` (sic!) instead.
event mime_segment_data%(c: connection, length: count, data: string%);
## Generated for data decoded from an email MIME entity. This event delivers
## the complete content of a single MIME entity. In contrast, there is also
## :bro:id:`mime_segment_data`, which passes on a sequence of data chunks as
## they. come in. While ``mime_entity_data`` is more convinient to handle,
## ``mime_segment_data`` is more efficient as Bro does not need to buffer the data.
## Thus, if possible, the latter should be prefered.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## length: The length of *data*.
##
## data: The raw data of the complete entity.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_event mime_one_header mime_segment_data
##
## .. note:: While Bro also decodes MIME entities extracted from HTTP
## sessions, there's no corresponding event for that currently.
event mime_entity_data%(c: connection, length: count, data: string%);
## Generated for passing on all data decoded from an single email MIME
## message. If an email message has more than one MIME entity, this event
## combines all their data into a single value for analysis. Note that because
## of the potentially significant buffering necessary, using this event can be
## expensive.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## length: The length of *data*.
##
## data: The raw data of all MIME entities concatenated.
##
## .. bro:see:: mime_all_headers mime_begin_entity mime_content_hash mime_end_entity
## mime_entity_data mime_event mime_one_header mime_segment_data
##
## .. note:: While Bro also decodes MIME entities extracted from HTTP
## sessions, there's no corresponding event for that currently.
event mime_all_data%(c: connection, length: count, data: string%);
## Generated for errors found when decoding email MIME entities.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## event_type: A string describing the general category of the problem found (e.g.,
## ``illegal format``).
##
## detail: Further more detailed description of the error.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_content_hash
## mime_end_entity mime_entity_data mime_one_header mime_segment_data http_event
##
## .. note:: Bro also extracts MIME headers from HTTP sessions. For those, however,
## it raises :bro:id:`http_event` instead.
event mime_event%(c: connection, event_type: string, detail: string%);
## Generated for decoded MIME entities extracted from email meessage, passing on
## their MD5 checksums. Bro computes the MD5 over the complete decoded data of
## each MIME entity.
##
## Bro's MIME analyzer for emails currently supports SMTP and POP3. See `Wikipedia
## <http://en.wikipedia.org/wiki/MIME>`__ for more information about the ARP
## protocol.
##
## c: The connection.
##
## content_len: The length of entity being hashed.
##
## hash_value: The MD5 hash.
##
## .. bro:see:: mime_all_data mime_all_headers mime_begin_entity mime_end_entity
## mime_entity_data mime_event mime_one_header mime_segment_data
##
## .. note:: While Bro also decodes MIME entities extracted from HTTP
## sessions, there's no corresponding event for that currently.
event mime_content_hash%(c: connection, content_len: count, hash_value: string%);
## Generated for RPC request/reply *pairs*. The RPC analyzer associates request
## and reply by their transactions identifiers and raise this event once both
## have been seen. If there's not reply, the will still be generated eventually
## on timeout. In that case, *status* will be set to :bro:enum:`RPC_TIMEOUT`.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/ONC_RPC>`__ for more information
## about the ONC RPC protocol.
## c: The connection.
##
## xid: The transaction identifier allowing to match requests with replies.
##
## prog: The remote program to call.
##
## ver: The version of the remote program to call.
##
## proc: The procedure of the remote program to call.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## start_time: Then time when the *call* was seen.
##
## call_len: The size of the *call_body* PDU.
##
## reply_len: The size of the *reply_body* PDU.
##
## .. bro:see:: rpc_call rpc_reply dce_rpc_bind dce_rpc_message dce_rpc_request
## dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event rpc_dialogue%(c: connection, prog: count, ver: count, proc: count, status: rpc_status, start_time: time, call_len: count, reply_len: count%);
## Generated for RPC *call* messages.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/ONC_RPC>`__ for more information
## about the ONC RPC protocol.
##
## c: The connection.
##
## xid: The transaction identifier allowing to match requests with replies.
##
## prog: The remote program to call.
##
## ver: The version of the remote program to call.
##
## proc: The procedure of the remote program to call.
##
## call_len: The size of the *call_body* PDU.
##
## .. bro:see:: rpc_dialogue rpc_reply dce_rpc_bind dce_rpc_message dce_rpc_request
## dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event rpc_call%(c: connection, xid: count, prog: count, ver: count, proc: count, call_len: count%);
## Generated for RPC *reply* messages.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/ONC_RPC>`__ for more information
## about the ONC RPC protocol.
##
## c: The connection.
##
## xid: The transaction identifier allowing to match requests with replies.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## reply_len: The size of the *reply_body* PDU.
##
## .. bro:see:: rpc_call rpc_dialogue dce_rpc_bind dce_rpc_message dce_rpc_request
## dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event rpc_reply%(c: connection, xid: count, status: rpc_status, reply_len: count%);
## Generated for Portmapper requests of type *null*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the service.
##
## r: The RPC connection.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit
## pm_request_dump pm_request_getport pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_request_null%(r: connection%);
## Generated for Portmapper request/reply dialogues of type *set*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the service.
##
## r: The RPC connection.
##
## m: The argument to the request.
##
## success: True if the request was successful, according to the corresponding
## reply. If no reply was seen, this will be false once the request times out.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit
## pm_request_dump pm_request_getport pm_request_null pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_request_set%(r: connection, m: pm_mapping, success: bool%);
## Generated for Portmapper request/reply dialogues of type *unset*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the service.
##
## r: The RPC connection.
##
## m: The argument to the request.
##
## success: True if the request was successful, according to the corresponding
## reply. If no reply was seen, this will be false once the request times out.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit
## pm_request_dump pm_request_getport pm_request_null pm_request_set rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_request_unset%(r: connection, m: pm_mapping, success: bool%);
## Generated for Portmapper request/reply dialogues of type *getport*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the service.
##
## r: The RPC connection.
##
## pr: The argument to the request.
##
## p: The port returned by the server.
##
## success: True if the request was successful, according to the corresponding
## reply. If no reply was seen, this will be false once the request times out.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit
## pm_request_dump pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_request_getport%(r: connection, pr: pm_port_request, p: port%);
## Generated for Portmapper request/reply dialogues of type *dump*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the service.
##
## r: The RPC connection.
##
## m: The mappings returned by the server.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_request_dump%(r: connection, m: pm_mappings%);
## Generated for Portmapper request/reply dialogues of type *callit*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## m: The argument to the request.
##
## p: The port value returned by the call.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_bad_port pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_request_callit%(r: connection, call: pm_callit_request, p: port%);
## Generated for failed Portmapper requests of type *null*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_attempt_null%(r: connection, status: rpc_status%);
## Generated for failed Portmapper requests of type *set*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## m: The argument to the original request.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_unset pm_bad_port pm_request_callit pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_attempt_set%(r: connection, status: rpc_status, m: pm_mapping%);
## Generated for failed Portmapper requests of type *unset*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## m: The argument to the original request.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_bad_port pm_request_callit pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_attempt_unset%(r: connection, status: rpc_status, m: pm_mapping%);
## Generated for failed Portmapper requests of type *getport*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## pr: The argument to the original request.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_null
## pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_attempt_getport%(r: connection, status: rpc_status, pr: pm_port_request%);
## Generated for failed Portmapper requests of type *dump*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_getport pm_attempt_null
## pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_attempt_dump%(r: connection, status: rpc_status%);
## Generated for failed Portmapper requests of type *callit*.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## status: The status of the reply, which should be one of the index values of
## :bro:id:`RPC_status`.
##
## call: The argument to the original request.
##
## .. bro:see:: epm_map_response pm_attempt_dump pm_attempt_getport pm_attempt_null
## pm_attempt_set pm_attempt_unset pm_bad_port pm_request_callit pm_request_dump
## pm_request_getport pm_request_null pm_request_set pm_request_unset rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_attempt_callit%(r: connection, status: rpc_status, call: pm_callit_request%);
## Generated for Portmapper requests or replies that include an invalid port
## number. Since ports are represented by unsigned 4-byte integers, they can stray
## outside the allowed range of 0--65535 by being >= 65536. If so, this event is
## generated.
##
## Portmapper is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Portmap>`__ for more information about the
## service.
##
## r: The RPC connection.
##
## bad_p: The invalid port value.
##
## .. bro:see:: epm_map_response pm_attempt_callit pm_attempt_dump pm_attempt_getport
## pm_attempt_null pm_attempt_set pm_attempt_unset pm_request_callit
## pm_request_dump pm_request_getport pm_request_null pm_request_set
## pm_request_unset rpc_call rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pm_bad_port%(r: connection, bad_p: count%);
## Generated for NFSv3 request/reply dialogues of type *null*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_read nfs_proc_readdir nfs_proc_readlink
## nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_null%(c: connection, info: NFS3::info_t%);
## Generated for NFSv3 request/reply dialogues of type *getattr*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## attr: The attributes returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status
## rpc_call rpc_dialogue rpc_reply NFS3::mode2string
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_getattr%(c: connection, info: NFS3::info_t, fh: string, attrs: NFS3::fattr_t%);
## Generated for NFSv3 request/reply dialogues of type *lookup*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## req: The arguments passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status
## rpc_call rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_lookup%(c: connection, info: NFS3::info_t, req: NFS3::diropargs_t, rep: NFS3::lookup_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *read*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## req: The arguments passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_remove nfs_proc_rmdir
## nfs_proc_write nfs_reply_status rpc_call rpc_dialogue rpc_reply
## NFS3::return_data NFS3::return_data_first_only NFS3::return_data_max
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_read%(c: connection, info: NFS3::info_t, req: NFS3::readargs_t, rep: NFS3::read_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *readlink*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_readlink%(c: connection, info: NFS3::info_t, fh: string, rep: NFS3::readlink_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *write*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_rmdir nfs_reply_status rpc_call
## rpc_dialogue rpc_reply NFS3::return_data NFS3::return_data_first_only
## NFS3::return_data_max
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_write%(c: connection, info: NFS3::info_t, req: NFS3::writeargs_t, rep: NFS3::write_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *create*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status
## rpc_call rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_create%(c: connection, info: NFS3::info_t, req: NFS3::diropargs_t, rep: NFS3::newobj_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *mkdir*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status
## rpc_call rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_mkdir%(c: connection, info: NFS3::info_t, req: NFS3::diropargs_t, rep: NFS3::newobj_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *remove*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_rmdir nfs_proc_write nfs_reply_status rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_remove%(c: connection, info: NFS3::info_t, req: NFS3::diropargs_t, rep: NFS3::delobj_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *rmdir*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_write nfs_reply_status rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_rmdir%(c: connection, info: NFS3::info_t, req: NFS3::diropargs_t, rep: NFS3::delobj_reply_t%);
## Generated for NFSv3 request/reply dialogues of type *readdir*. The event is
## generated once we have either seen both the request and its corresponding reply,
## or an unanswered request has timed out.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## fh: The file handle passed in the request.
##
## rep: The response returned in the reply. The values may not be valid if the
## request was unsuccessful.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readlink
## nfs_proc_remove nfs_proc_rmdir nfs_proc_write nfs_reply_status rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_readdir%(c: connection, info: NFS3::info_t, req: NFS3::readdirargs_t, rep: NFS3::readdir_reply_t%);
## Generated for NFS3 request/reply dialogues of a type that Bro's NFS3 analyzer
## does not implement.
##
## NFS is a service running on top of RPC. See `Wikipedia
## <http://en.wikipedia.org/wiki/Network_File_System_(protocol)>`__ for more
## information about the service.
##
## c: The RPC connection.
##
## info: Reports the status of the dialogue, along with some meta information.
##
## proc: The procedure called that Bro does not implement.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_null nfs_proc_read nfs_proc_readdir nfs_proc_readlink nfs_proc_remove
## nfs_proc_rmdir nfs_proc_write nfs_reply_status rpc_call rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_proc_not_implemented%(c: connection, info: NFS3::info_t, proc: NFS3::proc_t%);
## Generated for each NFS3 reply message received, reporting just the
## status included.
##
## info: Reports the status included in the reply.
##
## .. bro:see:: nfs_proc_create nfs_proc_getattr nfs_proc_lookup nfs_proc_mkdir
## nfs_proc_not_implemented nfs_proc_null nfs_proc_read nfs_proc_readdir
## nfs_proc_readlink nfs_proc_remove nfs_proc_rmdir nfs_proc_write rpc_call
## rpc_dialogue rpc_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event nfs_reply_status%(n: connection, info: NFS3::info_t%);
## Generated for all NTP messages. Different from many other of Bro's events, this
## one is generated for both client-side and server-side messages.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Network_Time_Protocoll>`__ for more
## information about the NTP protocol.
##
## u: The connection record describing the corresponding UDP flow.
##
## msg: The parsed NTP message.
##
## excess: The raw bytes of any optional parts of the NTP packet. Bro does not
## further parse any optional fields.
##
## .. bro:see:: ntp_session_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event ntp_message%(u: connection, msg: ntp_msg, excess: string%);
## Generated for all NetBIOS SSN and DGM messages. Bro's NetBIOS analyzer processes
## the NetBIOS session service running on TCP port 139, and (despite its name!) the
## NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## msg_type: The general type of message, as defined in Section 4.3.1 of `RFC 1002
## <http://tools.ietf.org/html/rfc1002>`__.
##
## data_len: The length of the message's payload.
##
## .. bro:see:: netbios_session_accepted netbios_session_keepalive
## netbios_session_raw_message netbios_session_rejected netbios_session_request
## netbios_session_ret_arg_resp decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_message%(c: connection, is_orig: bool, msg_type: count, data_len: count%);
## Generated for NetBIOS messages of type *session request*. Bro's NetBIOS analyzer
## processes the NetBIOS session service running on TCP port 139, and (despite its
## name!) the NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## msg: The raw payload of the message sent, excluding the common NetBIOS
## header.
##
## .. bro:see:: netbios_session_accepted netbios_session_keepalive
## netbios_session_message netbios_session_raw_message netbios_session_rejected
## netbios_session_ret_arg_resp decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_request%(c: connection, msg: string%);
## Generated for NetBIOS messages of type *positive session response*. Bro's
## NetBIOS analyzer processes the NetBIOS session service running on TCP port 139,
## and (despite its name!) the NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## msg: The raw payload of the message sent, excluding the common NetBIOS
## header.
##
## .. bro:see:: netbios_session_keepalive netbios_session_message
## netbios_session_raw_message netbios_session_rejected netbios_session_request
## netbios_session_ret_arg_resp decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_accepted%(c: connection, msg: string%);
## Generated for NetBIOS messages of type *negative session response*. Bro's
## NetBIOS analyzer processes the NetBIOS session service running on TCP port 139,
## and (despite its name!) the NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## msg: The raw payload of the message sent, excluding the common NetBIOS
## header.
##
## .. bro:see:: netbios_session_accepted netbios_session_keepalive
## netbios_session_message netbios_session_raw_message netbios_session_request
## netbios_session_ret_arg_resp decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_rejected%(c: connection, msg: string%);
## Generated for NetBIOS message of type *session message* that are not carrying
## SMB payload.
##
## NetBIOS analyzer processes the NetBIOS session service running on TCP port 139,
## and (despite its name!) the NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## msg: The raw payload of the message sent, excluding the common NetBIOS
## header (i.e., the ``user_data``).
##
## .. bro:see:: netbios_session_accepted netbios_session_keepalive
## netbios_session_message netbios_session_rejected netbios_session_request
## netbios_session_ret_arg_resp decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo:: This is an oddly named event. In fact, it's probably an odd event to
## have to begin with.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_raw_message%(c: connection, is_orig: bool, msg: string%);
## Generated for NetBIOS messages of type *retarget response*. Bro's NetBIOS
## analyzer processes the NetBIOS session service running on TCP port 139, and
## (despite its name!) the NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## msg: The raw payload of the message sent, excluding the common NetBIOS header.
##
## .. bro:see:: netbios_session_accepted netbios_session_keepalive
## netbios_session_message netbios_session_raw_message netbios_session_rejected
## netbios_session_request decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo: This is an oddly named event.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_ret_arg_resp%(c: connection, msg: string%);
## Generated for NetBIOS messages of type *keep-alive*. Bro's NetBIOS analyzer
## processes the NetBIOS session service running on TCP port 139, and (despite its
## name!) the NetBIOS datagram service on UDP port 138.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetBIOS>`__ for more information
## about NetBIOS. `RFC 1002 <http://tools.ietf.org/html/rfc1002>`__ describes
## the packet format for NetBIOS over TCP/IP, which Bro parses.
##
## c: The connection, which may be a TCP or UDP, depending on the type of the
## NetBIOS session.
##
## msg: The raw payload of the message sent, excluding the common NetBIOS header.
##
## .. bro:see:: netbios_session_accepted netbios_session_message
## netbios_session_raw_message netbios_session_rejected netbios_session_request
## netbios_session_ret_arg_resp decode_netbios_name decode_netbios_name_type
##
## .. note:: These days, NetBIOS is primarily used as a transport mechanism for
## `SMB/CIFS <http://en.wikipedia.org/wiki/Server_Message_Block>`__. Bro's SMB
## anlyzer parses both SMB-over-NetBIOS and SMB-over-TCP on port 445.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event netbios_session_keepalive%(c: connection, msg: string%);
## Generated for all SMB/CIFS messages.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## is_orig: True if the message was sent by the originator of the underlying
## transport-level connection.
##
## cmd: A string mmenonic of the SMB command code.
##
## body_length: The length of the SMB message body, i.e. the data starting after
## the SMB header.
##
## body: The raw SMB message body, i.e., the data starting after the SMB header.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_trans_rap smb_com_transaction smb_com_transaction2
## smb_com_tree_connect_andx smb_com_tree_disconnect smb_com_write_andx smb_error
## smb_get_dfs_referral
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_message%(c: connection, hdr: smb_hdr, is_orig: bool, cmd: string, body_length: count, body: string%);
## Generated for SMB/CIFS messages of type *tree connect andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## path: The ``path`` attribute specified in the message.
##
## service: The ``service`` attribute specified in the message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_trans_rap smb_com_transaction smb_com_transaction2
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_tree_connect_andx%(c: connection, hdr: smb_hdr, path: string, service: string%);
## Generated for SMB/CIFS messages of type *tree disconnect*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## path: The ``path`` attribute specified in the message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_trans_rap smb_com_transaction smb_com_transaction2
## smb_com_tree_connect_andx smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_tree_disconnect%(c: connection, hdr: smb_hdr%);
## Generated for SMB/CIFS messages of type *nt create andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## name: The ``name`` attribute specified in the message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_read_andx
## smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_nt_create_andx%(c: connection, hdr: smb_hdr, name: string%);
## Generated for SMB/CIFS messages of type *nt transaction*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## trans: The parsed transaction header.
##
## data: The raw transaction data.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe
## smb_com_trans_rap smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_transaction%(c: connection, hdr: smb_hdr, trans: smb_trans, data: smb_trans_data, is_orig: bool%);
## Generated for SMB/CIFS messages of type *nt transaction 2*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## trans: The parsed transaction header.
##
## data: The raw transaction data.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe
## smb_com_trans_rap smb_com_transaction smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_transaction2%(c: connection, hdr: smb_hdr, trans: smb_trans, data: smb_trans_data, is_orig: bool%);
## Generated for SMB/CIFS messages of type *transaction mailslot*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## trans: The parsed transaction header.
##
## data: The raw transaction data.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_trans_mailslot%(c: connection, hdr: smb_hdr, trans: smb_trans, data: smb_trans_data, is_orig: bool%);
## Generated for SMB/CIFS messages of type *transaction rap*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## trans: The parsed transaction header.
##
## data: The raw transaction data.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_transaction smb_com_transaction2
## smb_com_tree_connect_andx smb_com_tree_disconnect smb_com_write_andx smb_error
## smb_get_dfs_referral smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_trans_rap%(c: connection, hdr: smb_hdr, trans: smb_trans, data: smb_trans_data, is_orig: bool%);
## Generated for SMB/CIFS messages of type *transaction pipe*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## trans: The parsed transaction header.
##
## data: The raw transaction data.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_trans_pipe%(c: connection, hdr: smb_hdr, trans: smb_trans, data: smb_trans_data, is_orig: bool%);
## Generated for SMB/CIFS messages of type *read andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## data: Always empty.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_read_andx%(c: connection, hdr: smb_hdr, data: string%);
## Generated for SMB/CIFS messages of type *read andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## data: Always empty.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_trans_rap smb_com_transaction smb_com_transaction2
## smb_com_tree_connect_andx smb_com_tree_disconnect smb_error
## smb_get_dfs_referral smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_write_andx%(c: connection, hdr: smb_hdr, data: string%);
## Generated for SMB/CIFS messages of type *get dfs referral*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## max_referral_level: The ``max_referral_level`` attribute specified in the
## message.
##
## file_name: The ``filene_name`` attribute specified in the message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_trans_rap smb_com_transaction smb_com_transaction2
## smb_com_tree_connect_andx smb_com_tree_disconnect smb_com_write_andx smb_error
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_get_dfs_referral%(c: connection, hdr: smb_hdr, max_referral_level: count, file_name: string%);
## Generated for SMB/CIFS messages of type *negotiate*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate_response smb_com_nt_create_andx smb_com_read_andx smb_com_setup_andx
## smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap smb_com_transaction
## smb_com_transaction2 smb_com_tree_connect_andx smb_com_tree_disconnect
## smb_com_write_andx smb_error smb_get_dfs_referral smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_negotiate%(c: connection, hdr: smb_hdr%);
## Generated for SMB/CIFS messages of type *negotiate response*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## dialect_index: The ``dialect`` indicated in the message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_nt_create_andx smb_com_read_andx smb_com_setup_andx
## smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap smb_com_transaction
## smb_com_transaction2 smb_com_tree_connect_andx smb_com_tree_disconnect
## smb_com_write_andx smb_error smb_get_dfs_referral smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_negotiate_response%(c: connection, hdr: smb_hdr, dialect_index: count%);
## Generated for SMB/CIFS messages of type *setup andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_setup_andx%(c: connection, hdr: smb_hdr%);
## Generated for SMB/CIFS messages of type *generic andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## .. bro:see:: smb_com_close smb_com_logoff_andx smb_com_negotiate
## smb_com_negotiate_response smb_com_nt_create_andx smb_com_read_andx
## smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_generic_andx%(c: connection, hdr: smb_hdr%);
## Generated for SMB/CIFS messages of type *close*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## .. bro:see:: smb_com_generic_andx smb_com_logoff_andx smb_com_negotiate
## smb_com_negotiate_response smb_com_nt_create_andx smb_com_read_andx
## smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_close%(c: connection, hdr: smb_hdr%);
## Generated for SMB/CIFS messages of type *logoff andx*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Server_Message_Block>`__ for more
## information about the SMB/CIFS protocol. Bro's SMB/CIFS analyzer parses both
## SMB-over-NetBIOS on ports 138/139 and SMB-over-TCP on port 445.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_negotiate
## smb_com_negotiate_response smb_com_nt_create_andx smb_com_read_andx
## smb_com_setup_andx smb_com_trans_mailslot smb_com_trans_pipe smb_com_trans_rap
## smb_com_transaction smb_com_transaction2 smb_com_tree_connect_andx
## smb_com_tree_disconnect smb_com_write_andx smb_error smb_get_dfs_referral
## smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_com_logoff_andx%(c: connection, hdr: smb_hdr%);
## Generated for SMB/CIFS messages that indicate an error. This event is triggered
## by an SMB header including a status that signals an error.
##
## c: The connection.
##
## hdr: The parsed header of the SMB message.
##
## cmd: The SMB command code.
##
## cmd_str: A string mmenonic of the SMB command code.
##
## body: The raw SMB message body, i.e., the data starting after the SMB header.
##
## .. bro:see:: smb_com_close smb_com_generic_andx smb_com_logoff_andx
## smb_com_negotiate smb_com_negotiate_response smb_com_nt_create_andx
## smb_com_read_andx smb_com_setup_andx smb_com_trans_mailslot
## smb_com_trans_pipe smb_com_trans_rap smb_com_transaction smb_com_transaction2
## smb_com_tree_connect_andx smb_com_tree_disconnect smb_com_write_andx
## smb_get_dfs_referral smb_message
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event smb_error%(c: connection, hdr: smb_hdr, cmd: count, cmd_str: string, data: string%);
## Generated for all DNS messages.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## is_orig: True if the message was sent by the originator of the connection.
##
## msg: The parsed DNS message header.
##
## len: The length of the message's raw representation (i.e, the DNS payload).
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_query_reply dns_rejected
## dns_request non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_message%(c: connection, is_orig: bool, msg: dns_msg, len: count%) &group="dns";
## Generated for DNS requests. For requests with multiple queries, this event
## is raised once for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## query: The queried name.
##
## qtype: The queried resource record type.
##
## qclass: The queried resource record class.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_request%(c: connection, msg: dns_msg, query: string, qtype: count, qclass: count%) &group="dns";
## Generated for DNS replies that reject a query. This event is raised if a DNS
## reply either indicates failure via its status code or does not pass on any
## answers to a query. Note that all of the event's paramaters are parsed out of
## the reply; there's no stateful correlation with the query.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## query: The queried name.
##
## qtype: The queried resource record type.
##
## qclass: The queried resource record class.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_request non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_rejected%(c: connection, msg: dns_msg, query: string, qtype: count, qclass: count%) &group="dns";
## Generated for DNS replies with an *ok* status code but no question section.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## query: The queried name.
##
## qtype: The queried resource record type.
##
## qclass: The queried resource record class.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_rejected
## dns_request non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_query_reply%(c: connection, msg: dns_msg, query: string,
qtype: count, qclass: count%) &group="dns";
## Generated when the DNS analyzer processes what seems to be a non-DNS packets.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The raw DNS payload.
##
## .. note:: This event is deprecated and superseded by Bro's dynamic protocol
## detection framework.
event non_dns_request%(c: connection, msg: string%) &group="dns";
## Generated for DNS replies of type *A*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## a: The address returned by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_CNAME_reply dns_EDNS_addl dns_HINFO_reply
## dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply
## dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
##
## .. note: This event is currently also raised for ``AAAA`` records. In that
## case, the address *a* will correspond to the lower-order 4 bytes of the
## IPv6 address. This will go away once IPv6 support is improved.
##
## .. todo: IPv6 handling is obviously very broken here ...
event dns_A_reply%(c: connection, msg: dns_msg, ans: dns_answer, a: addr%) &group="dns";
## Generated for DNS replies of type *AAAA*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## a: The address returned by the reply.
##
## .. bro:see:: dns_A_reply dns_CNAME_reply dns_EDNS_addl dns_HINFO_reply dns_MX_reply
## dns_NS_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply dns_TSIG_addl
## dns_TXT_reply dns_WKS_reply dns_end dns_full_request dns_mapping_altered
## dns_mapping_lost_name dns_mapping_new_name dns_mapping_unverified
## dns_mapping_valid dns_message dns_query_reply dns_rejected dns_request
## non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
##
## .. todo: Raising this event is not implemented currently, not even when
## Bro's compiled IPv6 support. ``AAAA`` are currently always turned into
## :bro:id:`dns_A_reply` events.
event dns_AAAA_reply%(c: connection, msg: dns_msg, ans: dns_answer, a: addr, astr: string%) &group="dns";
## Generated for DNS replies of type *NS*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## name: The name returned by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply
## dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_NS_reply%(c: connection, msg: dns_msg, ans: dns_answer, name: string%) &group="dns";
## Generated for DNS replies of type *CNAME*. For replies with multiple answers,
## an individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## name: The name returned by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_EDNS_addl dns_HINFO_reply dns_MX_reply
## dns_NS_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply dns_TSIG_addl
## dns_TXT_reply dns_WKS_reply dns_end dns_full_request dns_mapping_altered
## dns_mapping_lost_name dns_mapping_new_name dns_mapping_unverified
## dns_mapping_valid dns_message dns_query_reply dns_rejected dns_request
## non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_CNAME_reply%(c: connection, msg: dns_msg, ans: dns_answer, name: string%) &group="dns";
## Generated for DNS replies of type *PTR*. For replies with multiple answers,
## an individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## name: The name returned by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_SOA_reply dns_SRV_reply
## dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_PTR_reply%(c: connection, msg: dns_msg, ans: dns_answer, name: string%) &group="dns";
## Generated for DNS replies of type *CNAME*. For replies with multiple answers,
## an individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## soa: The parsed SOA value
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SRV_reply
## dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_SOA_reply%(c: connection, msg: dns_msg, ans: dns_answer, soa: dns_soa%) &group="dns";
## Generated for DNS replies of type *WKS*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_WKS_reply%(c: connection, msg: dns_msg, ans: dns_answer%) &group="dns";
## Generated for DNS replies of type *HINFO*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## name: The name returned by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl dns_MX_reply
## dns_NS_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply dns_TSIG_addl
## dns_TXT_reply dns_WKS_reply dns_end dns_full_request dns_mapping_altered
## dns_mapping_lost_name dns_mapping_new_name dns_mapping_unverified
## dns_mapping_valid dns_message dns_query_reply dns_rejected dns_request
## non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_HINFO_reply%(c: connection, msg: dns_msg, ans: dns_answer%) &group="dns";
## Generated for DNS replies of type *MX*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## name: The name returned by the reply.
##
## preference: The preference for *name* specificed by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_NS_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply
## dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_MX_reply%(c: connection, msg: dns_msg, ans: dns_answer, name: string, preference: count%) &group="dns";
## Generated for DNS replies of type *TXT*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## str: The textual information returned by the reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_TXT_reply%(c: connection, msg: dns_msg, ans: dns_answer, str: string%) &group="dns";
## Generated for DNS replies of type *SRV*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The type-independent part of the parsed answer record.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_SRV_reply%(c: connection, msg: dns_msg, ans: dns_answer%) &group="dns";
## Generated for DNS replies of type *EDNS*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The parsed EDNS reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_HINFO_reply dns_MX_reply
## dns_NS_reply dns_PTR_reply dns_SOA_reply dns_SRV_reply dns_TSIG_addl
## dns_TXT_reply dns_WKS_reply dns_end dns_full_request dns_mapping_altered
## dns_mapping_lost_name dns_mapping_new_name dns_mapping_unverified
## dns_mapping_valid dns_message dns_query_reply dns_rejected dns_request
## non_dns_request dns_max_queries dns_session_timeout dns_skip_addl
## dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_EDNS_addl%(c: connection, msg: dns_msg, ans: dns_edns_additional%) &group="dns";
## Generated for DNS replies of type *TSIG*. For replies with multiple answers, an
## individual event of the corresponding type is raised for each.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## ans: The parsed TSIG reply.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TXT_reply dns_WKS_reply dns_end dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_TSIG_addl%(c: connection, msg: dns_msg, ans: dns_tsig_additional%) &group="dns";
## Generated at the end of processing a DNS packet. This event is the last
## ``dns_*`` event that will be raised for a DNS query/reply and signals that
## all resource records have been passed on.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Domain_Name_System>`__ for more
## information about the DNS protocol. Bro analyzes both UDP and TCP DNS sessions.
##
## c: The connection, which may be UDP or TCP depending on the type of the
## transport-layer session being analyzed.
##
## msg: The parsed DNS message header.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_full_request
## dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
event dns_end%(c: connection, msg: dns_msg%) &group="dns";
## Generated for DHCP messages of type *discover*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## req_addr: The specific address requested by the client.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request dns_max_queries dns_session_timeout
## dns_skip_addl dns_skip_all_addl dns_skip_all_auth dns_skip_auth
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_discover%(c: connection, msg: dhcp_msg, req_addr: addr%);
## Generated for DHCP messages of type *offer*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## mask: The subnet mask specified by the mesage.
##
## router: The list of routers specified by the message.
##
## lease: The least interval specificed by the message.
##
## serv_addr: The server address specified by the message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_offer%(c: connection, msg: dhcp_msg, mask: addr, router: dhcp_router_list, lease: interval, serv_addr: addr%);
## Generated for DHCP messages of type *request*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## req_addr: The client address specified by the message.
##
## serv_addr: The server address specified by the message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_request%(c: connection, msg: dhcp_msg, req_addr: addr, serv_addr: addr%);
## Generated for DHCP messages of type *decline*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_decline%(c: connection, msg: dhcp_msg%);
## Generated for DHCP messages of type *acknowledgment*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## mask: The subnet mask specified by the mesage.
##
## router: The list of routers specified by the message.
##
## lease: The least interval specificed by the message.
##
## serv_addr: The server address specified by the message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_ack%(c: connection, msg: dhcp_msg, mask: addr, router: dhcp_router_list, lease: interval, serv_addr: addr%);
## Generated for DHCP messages of type *negative acknowledgment*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_nak%(c: connection, msg: dhcp_msg%);
## Generated for DHCP messages of type *release*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_release%(c: connection, msg: dhcp_msg%);
## Generated for DHCP messages of type *inform*.
##
## See `Wikipedia
## <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>`__ for more
## information about the DHCP protocol.
##
## c: The connection record describing the underlying UDP flow..
##
## msg: The parsed type-indepedent part of the DHCP message.
##
## .. bro:see:: dns_AAAA_reply dns_A_reply dns_CNAME_reply dns_EDNS_addl
## dns_HINFO_reply dns_MX_reply dns_NS_reply dns_PTR_reply dns_SOA_reply
## dns_SRV_reply dns_TSIG_addl dns_TXT_reply dns_WKS_reply dns_end
## dns_full_request dns_mapping_altered dns_mapping_lost_name dns_mapping_new_name
## dns_mapping_unverified dns_mapping_valid dns_message dns_query_reply
## dns_rejected dns_request non_dns_request
##
## .. note: Bro does not support broadcast packets (as used by the DHCP protocol).
## It treats broadcast addresses just like any other and associates packets into
## transport-level flows in the same way as usual.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dhcp_inform%(c: connection, msg: dhcp_msg%);
## Generated for HTTP requests. Bro supports persistent and pipelined HTTP sessions
## and raises corresponding events as it parses client/server dialogues. This event
## is generated as soon as a request's initial line has been parsed, and before any
## :bro:id:`http_header` events are raised.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## method: The HTTP method extracted from the request (e.g., ``GET``, ``POST``).
##
## original_URI: The unprocessed URI as specified in the request.
##
## unescaped_URI: The URI with all percent-encodings decoded.
##
## version: The version number specified in the request (e.g., ``1.1``).
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_event http_header http_message_done http_reply http_stats
## truncate_http_URI
event http_request%(c: connection, method: string, original_URI: string, unescaped_URI: string, version: string%) &group="http-request";
## Generated for HTTP replies. Bro supports persistent and pipelined HTTP sessions
## and raises corresponding events as it parses client/server dialogues. This event
## is generated as soon as a reply's initial line has been parsed, and before any
## :bro:id:`http_header` events are raised.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## version: The version number specified in the reply (e.g., ``1.1``).
##
## code: The numerical response code returned by the server.
##
## reason: The textual description returned by the server along with *code*.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_event http_header http_message_done http_request
## http_stats
event http_reply%(c: connection, version: string, code: count, reason: string%) &group="http-reply";
## Generated for HTTP headers. Bro supports persistent and pipelined HTTP sessions
## and raises corresponding events as it parses client/server dialogues.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the header was sent by the originator of the TCP connection.
##
## name: The name of the header.
##
## value: The value of the header.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_event http_message_done http_reply http_request
## http_stats
##
## .. note:: This event is also raised for headers found in nested body entities.
event http_header%(c: connection, is_orig: bool, name: string, value: string%) &group="http-header";
## Generated for HTTP headers, passing on all headers of an HTTP message at once.
## Bro supports persistent and pipelined HTTP sessions and raises corresponding
## events as it parses client/server dialogues.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the header was sent by the originator of the TCP connection.
##
## hlist: A *table* containing all headers extracted from the current entity.
## The table is indexed by the position of the header (1 for the first, 2 for the
## second, etc.).
##
## .. bro:see:: http_begin_entity http_content_type http_end_entity http_entity_data
## http_event http_header http_message_done http_reply http_request http_stats
##
## .. note:: This event is also raised for headers found in nested body entities.
event http_all_headers%(c: connection, is_orig: bool, hlist: mime_header_list%) &group="http-header";
## Generated when starting to parse an HTTP body entity. This event is generated
## at least once for each non-empty (client or server) HTTP body; and potentially
## more than once if the body contains further nested MIME entities. Bro raises
## this event just before it starts parsing each entity's content.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the entity was was sent by the originator of the TCP
## connection.
##
## .. bro:see:: http_all_headers http_content_type http_end_entity http_entity_data
## http_event http_header http_message_done http_reply http_request http_stats
## mime_begin_entity
event http_begin_entity%(c: connection, is_orig: bool%) &group="http-body";
## Generated when finishing parsing an HTTP body entity. This event is generated
## at least once for each non-empty (client or server) HTTP body; and potentially
## more than once if the body contains further nested MIME entities. Bro raises
## this event at the point when it has finished parsing an entity's content.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the entity was was sent by the originator of the TCP
## connection.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_entity_data
## http_event http_header http_message_done http_reply http_request
## http_stats mime_end_entity
event http_end_entity%(c: connection, is_orig: bool%) &group="http-body";
## Generated when parsing an HTTP body entity, passing on the data. This event
## can potentially be raised many times for each entity, each time passing a
## chunk of the data of not further defined size.
##
## A common idiom for using this event is to first *reassemble* the data
## at the scripting layer by concatening it to a successvily growing
## string; and only perform further content analysis once the corresponding
## :bro:id:`http_end_entity` event has been raised. Note, however, that doing so
## can be quite expensive for HTTP tranders. At the very least, one should
## impose an upper size limit on how much data is being buffered.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the entity was was sent by the originator of the TCP
## connection.
##
## length: The length of *data*.
##
## data: One chunk of raw entity data.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_event http_header http_message_done http_reply http_request http_stats
## mime_entity_data http_entity_data_delivery_size skip_http_data
event http_entity_data%(c: connection, is_orig: bool, length: count, data: string%) &group="http-body";
## Generated for reporting an HTTP bodie's content type. This event is
## generated at the end of parsing an HTTP header, passing on the MIME
## type as specified by the ``Content-Type`` header. If that header is
## missing, this event is still raised with a default value of ``text/plain``.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the entity was was sent by the originator of the TCP
## connection.
##
## ty: The main type.
##
## subty: The subtype.
##
## .. bro:see:: http_all_headers http_begin_entity http_end_entity http_entity_data
## http_event http_header http_message_done http_reply http_request http_stats
##
## .. note:: This event is also raised for headers found in nested body
## entities.
event http_content_type%(c: connection, is_orig: bool, ty: string, subty: string%) &group="http-body";
## Generated once at the end of parsing an HTTP message. Bro supports persistent
## and pipelined HTTP sessions and raises corresponding events as it parses
## client/server dialogues. A "message" is one top-level HTTP entity, such as a
## complete request or reply. Each message can have further nested sub-entities
## inside. This event is raised once all sub-entities belonging to a top-level
## message have been processed (and their corresponding ``http_entity_*`` events
## generated).
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## is_orig: True if the entity was was sent by the originator of the TCP
## connection.
##
## stat: Further meta information about the message.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_event http_header http_reply http_request http_stats
event http_message_done%(c: connection, is_orig: bool, stat: http_message_stat%) &group="http-body";
## Generated for errors found when decoding HTTP requests or replies.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>`__ for
## more information about the HTTP protocol.
##
## c: The connection.
##
## event_type: A string describing the general category of the problem found (e.g.,
## ``illegal format``).
##
## detail: Further more detailed description of the error.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_header http_message_done http_reply http_request
## http_stats mime_event
event http_event%(c: connection, event_type: string, detail: string%);
## Generated at the end of an HTTP session to report statistics about it. This
## event is raised after all of an HTTP session's requests and replies have been
## fully processed.
##
## c: The connection.
##
## stats: Statistics summarizing HTTP-level properties of the finished connection.
##
## .. bro:see:: http_all_headers http_begin_entity http_content_type http_end_entity
## http_entity_data http_event http_header http_message_done http_reply
## http_request
event http_stats%(c: connection, stats: http_stats_rec%);
## Generated when seeing an SSH client's version identification. The SSH protocol
## starts with a clear-test handshake message that reports client and server
## protocol/software versions. This event provides access to what the client
## sent.
##
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Secure_Shell>`__ for more
## information about the SSH protocol.
##
## c: The connection.
##
## version: The version string the client sent (e.g., `SSH-2.0-libssh-0.11`).
##
## .. bro:see:: ssh_server_version
##
## .. note:: As everything after the initial version handshake proceeds encrypted,
## Bro cannot further analyze SSH sessions.
event ssh_client_version%(c: connection, version: string%);
## Generated when seeing an SSH server's version identification. The SSH protocol
## starts with a clear-test handshake message that reports client and server
## protocol/software versions. This event provides access to what the server
## sent.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Secure_Shell>`__ for more
## information about the SSH protocol.
##
## c: The connection.
##
## version: The version string the server sent (e.g.,
## ``SSH-1.99-OpenSSH_3.9p1``).
##
## .. bro:see:: ssh_client_version
##
## .. note:: As everything coming after the initial version handshake proceeds
## encrypted, Bro cannot further analyze SSH sessions.
event ssh_server_version%(c: connection, version: string%);
## Generated for an SSL/TLS client's initial *hello* message. SSL/TLS sessions
## start with an unencrypted handshake, and Bro extracts as much information out
## that it as it can. This event provides access to the initial information sent by
## the client.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Transport_Layer_Security>`__ for
## more information about the SSL/TLS protocol.
##
## c: The connection.
##
## version: The protocol version as extracted from the client's
## message. The values are standardized as part of the SSL/TLS protocol. The
## :bro:id:`SSL::version_strings` table maps them to descriptive names.
##
## possible_ts: The current time as sent by the client. Note that SSL/TLS does not
## require clocks to be set correctly, so treat with care.
##
## session_id: The session ID sent by the client (if any).
##
## ciphers: The list of ciphers the client offered to use. The values are
## standardized as part of the SSL/TLS protocol. The :bro:id:`SSL::cipher_desc` table
## maps them to descriptive names.
##
## .. bro:see:: ssl_alert ssl_established ssl_extension ssl_server_hello
## ssl_session_ticket_handshake x509_certificate x509_error x509_extension
## ssl_max_cipherspec_size
event ssl_client_hello%(c: connection, version: count, possible_ts: time, session_id: string, ciphers: count_set%);
## Generated for an SSL/TLS servers's initial *hello* message. SSL/TLS sessions
## start with an unencrypted handshake, and Bro extracts as much information out
## of that as it can. This event provides access to the initial information sent by
## the client.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Transport_Layer_Security>`__ for
## more information about the SSL/TLS protocol.
##
## c: The connection.
##
## version: The protocol version as extracted from the servers's message.
## The values are standardized as part of the SSL/TLS protocol. The
## :bro:id:`SSL::version_strings` table maps them to descriptive names.
##
## possible_ts: The current time as sent by the server. Note that SSL/TLS does not
## require clocks to be set correctly, so treat with care.
##
## session_id: The session ID as sent back by the server (if any).
##
## cipher: The cipher chosen by the server. The values are standardized as part
## of the SSL/TLS protocol. The :bro:id:`SSL::cipher_desc` table maps them to
## descriptive names.
##
## comp_method: The compression method chosen by the client. The values are
## standardized as part of the SSL/TLS protocol.
##
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_extension
## ssl_session_ticket_handshake x509_certificate x509_error x509_extension
## ssl_max_cipherspec_size
event ssl_server_hello%(c: connection, version: count, possible_ts: time, session_id: string, cipher: count, comp_method: count%);
## Generated for SSL/TLS extensions seen in an initial handshake. SSL/TLS sessions
## start with an unencrypted handshake, and Bro extracts as much information out of
## that as it can. This event provides access to any extensions either side sents
## as part of extended *hello* message.
##
## c: The connection.
##
## is_orig: True if event is raised for originator side of the connection.
##
## code: The numerical code of the extension. The values are standardized as
## part of the SSL/TLS protocol. The :bro:id:`SSL::extensions` table maps them to
## descriptive names.
##
## val: The raw extension value that was sent in the message.
##
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_server_hello
## ssl_session_ticket_handshake x509_certificate x509_error x509_extension
event ssl_extension%(c: connection, is_orig: bool, code: count, val: string%);
## Generated at the end of an SSL/TLS handshake. SSL/TLS sessions start with
## an unencrypted handshake, and Bro extracts as much information out of that as
## it can. This event signals the time when an SSL/TLS has finished the handshake
## and its endpoints consider it as fully established. Typically, everything from
## now on will be encrypted.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Transport_Layer_Security>`__ for
## more information about the SSL/TLS protocol.
##
## c: The connection.
##
## .. bro:see:: ssl_alert ssl_client_hello ssl_extension ssl_server_hello
## ssl_session_ticket_handshake x509_certificate x509_error x509_extension
event ssl_established%(c: connection%);
## Generated for SSL/TLS alert records. SSL/TLS sessions start with an unencrypted
## handshake, and Bro extracts as much information out of that as it can. If during
## that handshake, an endpoint encounteres a fatal error, it sends an *alert*
## record, that it turns triggers this event. After an *alert*, any endpoint
## may close the connection immediately.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Transport_Layer_Security>`__ for
## more information about the SSL/TLS protocol.
##
## c: The connection.
##
## is_orig: True if event is raised for originator side of the connection.
##
## level: The severity level, as sent in the *alert*. The values are defined as
## part of the SSL/TLS protocol.
##
## desc: A numerical value identifying the cause of the *alert*. The values are
## defined as part of the SSL/TLS protocol.
##
## .. bro:see:: ssl_client_hello ssl_established ssl_extension ssl_server_hello
## ssl_session_ticket_handshake x509_certificate x509_error x509_extension
event ssl_alert%(c: connection, is_orig: bool, level: count, desc: count%);
## Generated for SSL/TLS handshake messages that are a part of the stateless-server
## session resumption mechanism. SSL/TLS sessions start with an unencrypted
## handshake, and Bro extracts as much information out of that as it can. This
## event is raised when an SSL/TLS server passes session ticket to the client that
## can later be used for resuming the session. The mechanism is described in
## :rfc:`4507`
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Transport_Layer_Security>`__ for
## more information about the SSL/TLS protocol.
##
## c: The connection.
##
## ticket_lifetime_hint: A hint from the server about how long the ticket
## should be stored by the client.
##
## ticket: The raw ticket data.
##
## .. bro:see:: ssl_client_hello ssl_established ssl_extension ssl_server_hello
## x509_certificate x509_error x509_extension ssl_alert
event ssl_session_ticket_handshake%(c: connection, ticket_lifetime_hint: count, ticket: string%);
## Generated for x509 certificates seen in SSL/TLS connections. During the initial
## SSL/TLS handshake, certificates are exchanged in the clear. Bro raises this
## event for each certificate seen (including both a site's primary cert, and
## further certs sent as part of the validation chain).
##
## See `Wikipedia <http://en.wikipedia.org/wiki/X.509>`__ for more information about
## the X.509 format.
##
## c: The connection.
##
## is_orig: True if event is raised for originator side of the connection.
##
## cert: The parsed certificate.
##
## chain_idx: The index in the validation chain that this cert has. Index zero
## indicates an endpoints primary cert, while higher indices
## indicate the place in the validation chain (which has length
## *chain_len*).
##
## chain_len: The total length of the validation chain that this cert is part
## of.
##
## der_cert: The complete cert encoded in `DER
## <http://en.wikipedia.org/wiki/Distinguished_Encoding_Rules>`__ format.
##
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_extension
## ssl_server_hello x509_error x509_extension x509_verify
event x509_certificate%(c: connection, is_orig: bool, cert: X509, chain_idx: count, chain_len: count, der_cert: string%);
## Generated for X.509 extensions seen in a certificate.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/X.509>`__ for more information about
## the X.509 format.
##
## c: The connection.
##
## is_orig: True if event is raised for originator side of the connection.
##
## data: The raw data associated with the extension.
##
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_extension
## ssl_server_hello x509_certificate x509_error x509_verify
event x509_extension%(c: connection, is_orig: bool, data: string%);
## Generated when errors occur during parsing an X.509 certificate.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/X.509>`__ for more information about
## the X.509 format.
##
## c: The connection.
##
## is_orig: True if event is raised for originator side of the connection.
##
## err: An error code describing what went wrong. :bro:id:`SSL::x509_errors` maps
## error codes to a textual description.
##
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_extension
## ssl_server_hello x509_certificate x509_extension x509_err2str x509_verify
event x509_error%(c: connection, is_orig: bool, err: count%);
## TODO.
##
## .. bro:see:: rpc_call rpc_dialogue rpc_reply dce_rpc_bind dce_rpc_request
## dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dce_rpc_message%(c: connection, is_orig: bool, ptype: dce_rpc_ptype, msg: string%);
## TODO.
##
## .. bro:see:: rpc_call rpc_dialogue rpc_reply dce_rpc_message dce_rpc_request
## dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dce_rpc_bind%(c: connection, uuid: string%);
## TODO.
##
## .. bro:see:: rpc_call rpc_dialogue rpc_reply dce_rpc_bind dce_rpc_message
## dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dce_rpc_request%(c: connection, opnum: count, stub: string%);
## TODO.
##
## .. bro:see:: rpc_call rpc_dialogue rpc_reply dce_rpc_bind dce_rpc_message
## dce_rpc_request rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event dce_rpc_response%(c: connection, opnum: count, stub: string%);
## TODO.
##
## .. bro:see:: rpc_call rpc_dialogue rpc_reply dce_rpc_bind dce_rpc_message
## dce_rpc_request dce_rpc_response rpc_timeout
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event epm_map_response%(c: connection, uuid: string, p: port, h: addr%);
## Generated for NCP requests (Netware Core Protocol).
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetWare_Core_Protocol>`__ for more
## information about the NCP protocol.
##
## c: The connection.
##
## frame_type: The frame type, as specified by the protocol.
##
## length: The length of the request body, excluding the frame header,
##
## func: The requested function, as specified by the protocol.
##
## .. bro:see:: ncp_reply
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event ncp_request%(c: connection, frame_type: count, length: count, func: count%);
## Generated for NCP replies (Netware Core Protocol).
##
## See `Wikipedia <http://en.wikipedia.org/wiki/NetWare_Core_Protocol>`__ for more
## information about the NCP protocol.
##
## c: The connection.
##
## frame_type: The frame type, as specified by the protocol.
##
## length: The length of the request body, excluding the frame header,
##
## req_frame: The frame type from the corresponding request.
##
## req_frame: The function code from the corresponding request.
##
## completion_code: The replie's completion code, as specified by the protocol.
##
## .. bro:see:: ncp_request
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event ncp_reply%(c: connection, frame_type: count, length: count, req_frame: count, req_func: count, completion_code: count%);
## Generated for client-side commands on POP3 connections.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: True if the command was sent by the originator of the TCP connection.
##
## command: The command sent.
##
## arg: The argument to the command.
##
## .. bro:see:: pop3_data pop3_login_failure pop3_login_success pop3_reply
## pop3_terminate pop3_unexpected
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_request%(c: connection, is_orig: bool,
command: string, arg: string%);
## Generated for server-side replies to commands on POP3 connections.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: True if the command was sent by the originator of the TCP connection.
##
## cmd: The success indicator sent by the server. This corresponds to the
## first token on the line sent, and should be either ``OK`` or ``ERR``.
##
## msg: The textual description the server sent along with *cmd*.
##
## arg: The argument to the command.
##
## .. bro:see:: pop3_data pop3_login_failure pop3_login_success pop3_request
## pop3_terminate pop3_unexpected
##
## .. todo: This event is receiving odd parameters, should unify.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_reply%(c: connection, is_orig: bool, cmd: string, msg: string%);
## Generated for server-side multi-lines responses on POP3 connections. POP3
## connection use multi-line responses to send buld data, such as the actual
## mails. This event is generated once for each line that's part of such a
## response.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: True if the data was sent by the originator of the TCP connection.
##
## data: The data sent.
##
## .. bro:see:: pop3_login_failure pop3_login_success pop3_reply pop3_request
## pop3_terminate pop3_unexpected
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_data%(c: connection, is_orig: bool, data: string%);
## Generated for errors encountered on POP3 sessions. If the POP3 analyzers finds
## state transition that do not confirm to the protocol specification, or other
## situations it can't handle, it raises this event.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: True if the data was sent by the originator of the TCP connection.
##
## msg: A textual description of the situation.
##
## detail: The input that triggered the event.
##
## .. bro:see:: pop3_data pop3_login_failure pop3_login_success pop3_reply pop3_request
## pop3_terminate
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_unexpected%(c: connection, is_orig: bool,
msg: string, detail: string%);
## Generated when POP3 connection go encrypted. While POP3 is by default a
## clear-text protocol, extensions exist to switch to encryption. This event is
## generated if that happens and the analyzers then stops processing the
## connection.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: Always false.
##
## msg: A descriptive message why processing was stopped.
##
## .. bro:see:: pop3_data pop3_login_failure pop3_login_success pop3_reply pop3_request
## pop3_unexpected
##
## .. note:: Currently, only the ``STARTLS`` command is recognized and
## triggers this.
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_terminate%(c: connection, is_orig: bool, msg: string%);
## Generated for successful authentications on POP3 connections.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: Always false.
##
## user: The user name used for authentication. The event is only generated if
## a non-empty user name was used.
##
## password: The password used for authentication.
##
## .. bro:see:: pop3_data pop3_login_failure pop3_reply pop3_request pop3_terminate
## pop3_unexpected
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_login_success%(c: connection, is_orig: bool,
user: string, password: string%);
## Generated for unsuccessful authentications on POP3 connections.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/POP3>`__ for more information about
## the POP3 protocol.
##
## c: The connection.
##
## is_orig: Always false.
##
## user: The user name attempted for authentication. The event is only generated if
## a non-empty user name was used.
##
## password: The password attempted for authentication.
##
## .. bro:see:: pop3_data pop3_login_success pop3_reply pop3_request pop3_terminate
## pop3_unexpected
##
## .. todo:: Bro's current default configuration does not activate the protocol
## analyzer that generates this event; the corresponding script has not yet
## been ported to Bro 2.x. To still enable this event, one needs to add a
## corresponding entry to :bro:see:`dpd_config` or a DPD payload signature.
event pop3_login_failure%(c: connection, is_orig: bool,
user: string, password: string%);
## Generated for all client-side IRC commands.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: Always true.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## command: The command.
##
## arguments: The arguments for the command.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
##
## .. note:: This event is generated only for message that originate at the
## clients-side. Commands coming in from remote trigger the ge:bro:id:`irc_message`
## event instead.
event irc_request%(c: connection, is_orig: bool, prefix: string,
command: string, arguments: string%);
## Generated for all IRC replies. IRC replies are sent in response to a
## request and come with a reply code.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## prefix: The optional prefix comming with the reply. IRC uses the prefix to
## indicate the true origin of a message.
##
## code: The reply code, as specified by the protocol.
##
## params: The reply's parameters.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_reply%(c: connection, is_orig: bool, prefix: string,
code: count, params: string%);
## Generated for IRC commands forwarded from the server to the client.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: Always false.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## command: The command.
##
## arguments: The arguments for the command.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
##
## .. note::
##
## This event is generated only for messages that are forwarded by the server
## to the client. Commands coming from client trigger the :bro:id:`irc_request`
## event instead.
event irc_message%(c: connection, is_orig: bool, prefix: string,
command: string, message: string%);
## Generated for IRC messages of type *quit*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## nick: The nick name coming with the message.
##
## message: The text included with the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_quit_message%(c: connection, is_orig: bool, nick: string, message: string%);
## Generated for IRC messages of type *privmsg*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## source: The source of the private communication.
##
## target: The target of the private communication.
##
## message: The text of communication.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_privmsg_message%(c: connection, is_orig: bool, source: string,
target: string, message: string%);
## Generated for IRC messages of type *notice*. This event is generated for
## messages coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## source: The source of the private communication.
##
## target: The target of the private communication.
##
## message: The text of communication.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_notice_message%(c: connection, is_orig: bool, source: string,
target: string, message: string%);
## Generated for IRC messages of type *squery*. This event is generated for
## messages coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## source: The source of the private communication.
##
## target: The target of the private communication.
##
## message: The text of communication.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_squery_message%(c: connection, is_orig: bool, source: string,
target: string, message: string%);
## Generated for IRC messages of type *join*. This event is generated for
## messages coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## info_list: The user information coming with the command.
##
## message: The text of communication.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_join_message%(c: connection, is_orig: bool, info_list: irc_join_list%);
## Generated for IRC messages of type *part*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## nick: The nickname coming with the message.
##
## chans: The set of channels affected.
##
## message: The text coming with the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_password_message
event irc_part_message%(c: connection, is_orig: bool, nick: string,
chans: string_set, message: string%);
## Generated for IRC messages of type *nick*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## who: The user changing its nickname.
##
## newnick: The new nickname.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_nick_message%(c: connection, is_orig: bool, who: string, newnick: string%);
## Generated when a server rejects an IRC nickname.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invite_message irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_invalid_nick%(c: connection, is_orig: bool%);
## Generated for an IRC reply of type *luserclient*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## users: The number of users as returned in the reply.
##
## services: The number of services as returned in the reply.
##
## servers: The number of servers as returned in the reply.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_network_info%(c: connection, is_orig: bool, users: count,
services: count, servers: count%);
## Generated for an IRC reply of type *luserme*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## users: The number of users as returned in the reply.
##
## services: The number of services as returned in the reply.
##
## servers: The number of servers as returned in the reply.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_server_info%(c: connection, is_orig: bool, users: count,
services: count, servers: count%);
## Generated for an IRC reply of type *luserchannels*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## chans: The number of channels as returned in the reply.
##
## .. bro:see:: irc_channel_topic irc_dcc_message irc_error_message irc_global_users
## irc_invalid_nick irc_invite_message irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_channel_info%(c: connection, is_orig: bool, chans: count%);
## Generated for an IRC reply of type *whoreply*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## target_nick: The target nick name.
##
## channel: The channel.
##
## user: The user.
##
## host: The host.
##
## server: The server.
##
## nick: The nick name.
##
## params: The parameters.
##
## hops: The hop count.
##
## real_name: The real name.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_who_line%(c: connection, is_orig: bool, target_nick: string,
channel: string, user: string, host: string,
server: string, nick: string, params: string,
hops: count, real_name: string%);
## Generated for an IRC reply of type *namereply*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## c_type: The channel type.
##
## channel: The channel.
##
## users: The set of users.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_names_info%(c: connection, is_orig: bool, c_type: string,
channel: string, users: string_set%);
## Generated for an IRC reply of type *whoisoperator*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## nick: The nick name specified in the reply.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_whois_operator_line%(c: connection, is_orig: bool, nick: string%);
## Generated for an IRC reply of type *whoischannels*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## nick: The nick name specified in the reply.
##
## chans: The set of channels returned.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_whois_channel_line%(c: connection, is_orig: bool, nick: string,
chans: string_set%);
## Generated for an IRC reply of type *whoisuser*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## nick: The nick name specified in the reply.
##
## user: The user name specified in the reply.
##
## host: The host name specified in the reply.
##
## user: The user name specified in the reply.
##
## real_name: The real name specified in the reply.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_whois_user_line%(c: connection, is_orig: bool, nick: string,
user: string, host: string, real_name: string%);
## Generated for IRC replies of type *youreoper* and *nooperhost*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## got_oper: True if the *oper* command was executed successfully
## (*youreport*) and false otherwise (*nooperhost*).
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_part_message
## irc_password_message
event irc_oper_response%(c: connection, is_orig: bool, got_oper: bool%);
## Generated for an IRC reply of type *globalusers*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## msg: The message coming with the reply.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_invalid_nick irc_invite_message irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_global_users%(c: connection, is_orig: bool, prefix: string, msg: string%);
## Generated for an IRC reply of type *topic*.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## channel: The channel name specified in the reply.
##
## topic: The topic specified in the reply.
##
## .. bro:see:: irc_channel_info irc_dcc_message irc_error_message irc_global_users
## irc_invalid_nick irc_invite_message irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_channel_topic%(c: connection, is_orig: bool, channel: string, topic: string%);
## Generated for IRC messages of type *who*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## is_orig: True if the command what sent by the originator of the TCP connection.
##
## mask: The mask specified in the message.
##
## oper: True if the operator flag was set.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_who_message%(c: connection, is_orig: bool, mask: string, oper: bool%);
## Generated for IRC messages of type *whois*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
##
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_whois_message%(c: connection, is_orig: bool, server: string, users: string%);
## Generated for IRC messages of type *oper*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## user: The user specified in the message.
##
## password: The password specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_response irc_part_message
## irc_password_message
event irc_oper_message%(c: connection, is_orig: bool, user: string, password: string%);
## Generated for IRC messages of type *kick*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## chans: The channels specified in the message.
##
## users: The users specified in the message.
##
## comment: The comment specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_kick_message%(c: connection, is_orig: bool, prefix: string,
chans: string, users: string, comment: string%);
## Generated for IRC messages of type *error*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## message: The textual description specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_global_users
## irc_invalid_nick irc_invite_message irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_error_message%(c: connection, is_orig: bool, prefix: string, message: string%);
## Generated for IRC messages of type *invite*. This event is generated for
## messages coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## nickname: The nick name specified in the message.
##
## channel: The channel specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_invite_message%(c: connection, is_orig: bool, prefix: string,
nickname: string, channel: string%);
## Generated for IRC messages of type *mode*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## params: The parameters coming with the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_mode_message%(c: connection, is_orig: bool, prefix: string, params: string%);
## Generated for IRC messages of type *squit*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## server: The server specified in the message.
##
## messate: The textual description specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_squit_message%(c: connection, is_orig: bool, prefix: string,
server: string, message: string%);
## Generated for IRC messages of type *dcc*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## prefix: The optional prefix coming with the command. IRC uses the prefix to
## indicate the true origin of a message.
##
## target: The target specified in the message.
##
## dcc_type: The DCC type specified in the message.
##
## argument: The argument specified in the message.
##
## address: The address specified in the message.
##
## dest_port: The destination port specified in the message.
##
## size: The size specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_error_message irc_global_users
## irc_invalid_nick irc_invite_message irc_join_message irc_kick_message
## irc_message irc_mode_message irc_names_info irc_network_info irc_nick_message
## irc_notice_message irc_oper_message irc_oper_response irc_part_message
## irc_password_message
event irc_dcc_message%(c: connection, is_orig: bool,
prefix: string, target: string,
dcc_type: string, argument: string,
address: addr, dest_port: count, size: count%);
## Generated for IRC messages of type *user*. This event is generated for messages
## coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## user: The user specified in the message.
##
## host: The host name specified in the message.
##
## server: The server name specified in the message.
##
## real_name: The real name specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message irc_password_message
event irc_user_message%(c: connection, is_orig: bool, user: string, host: string, server: string, real_name: string%);
## Generated for IRC messages of type *password*. This event is generated for
## messages coming from both the client and the server.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`__ for more
## information about the IRC protocol.
##
## c: The connection.
##
## password: The password specified in the message.
##
## .. bro:see:: irc_channel_info irc_channel_topic irc_dcc_message irc_error_message
## irc_global_users irc_invalid_nick irc_invite_message irc_join_message
## irc_kick_message irc_message irc_mode_message irc_names_info irc_network_info
## irc_nick_message irc_notice_message irc_oper_message irc_oper_response
## irc_part_message
event irc_password_message%(c: connection, is_orig: bool, password: string%);
## TODO.
##
## .. bro:see::
event file_transferred%(c: connection, prefix: string, descr: string, mime_type: string%);
## Generated for monitored Syslog messages.
##
## See `Wikipedia <http://en.wikipedia.org/wiki/Syslog>`__ for more
## information about the Syslog protocol.
##
## c: The connection record for the underlying transport-layer session/flow.
##
## facility: The "facility" included in the message.
##
## severity: The "severity" included in the message.
##
## msg: The message logged.
##
## .. note:: Bro currently parses only UDP syslog traffic. Support for TCP syslog
## will be added soon.
event syslog_message%(c: connection, facility: count, severity: count, msg: string%);
## Generated when a signature matches. Bro's signature engine provide
## high-performance pattern matching separately from the normal script processing.
## If a signature with an ``event`` action matches, this event is raised.
##
## See the :doc:`user manual </signatures>` for more information about Bro's
## signature engine.
##
## state: Context about the match, including which signatures triggered the
## event and the connection for which the match was found.
##
## msg: The message passed to the ``event`` signature action.
##
## data; The last chunk of input that triggered the match. Note that the specifics
## here are no well-defined as Bro does not buffer any input. If a match is split
## across packet boundaries, only the last chunk triggering the will be passed on
## to the event.
event signature_match%(state: signature_state, msg: string, data: string%);
## Generated when a protocol analyzer finds an identification of a software
## used on a system. This is a protocol-independent event that is fed by
## different analyzers. For example, the HTTP analyzer reports user-agent and
## server software by raising this event, assuming it can parse it (if not,
## :bro:id:`software_parse_error` will be generated instead).
##
## c: The connection.
##
## host: The host running the reported software.
##
## s: A description of the software found.
##
## descr: The raw (unparsed) software identification string as extracted from the
## protocol.
##
## .. bro:see:: software_parse_error software_unparsed_version_found OS_version_found
event software_version_found%(c: connection, host: addr,
s: software, descr: string%);
## Generated when a protocol analyzer finds an identification of a software used on
## a system but cannot parse it. This is a protocol-independent event that is fed
## by different analyzers. For example, the HTTP analyzer reports user-agent and
## server software by raising this event if it cannot parse them directly (if canit
## :bro:id:`software_version_found` will be generated instead).
##
## c: The connection.
##
## host: The host running the reported software.
##
## descr: The raw (unparsed) software identification string as extracted from the
## protocol.
##
## .. bro:see:: software_version_found software_unparsed_version_found
## OS_version_found
event software_parse_error%(c: connection, host: addr, descr: string%);
## Generated when a protocol analyzer finds an identification of a software
## used on a system. This is a protocol-independent event that is fed by
## different analyzers. For example, the HTTP analyzer reports user-agent and
## server software by raising this event. Different from
## :bro:id:`software_version_found` and :bro:id:`software_parse_error`, this
## event is always raised, independent of whether Bro can parse the version
## string.
##
## c: The connection.
##
## host: The host running the reported software.
##
## descr: The software identification string as extracted from the protocol.
##
## .. bro:see:: software_parse_error software_version_found OS_version_found
event software_unparsed_version_found%(c: connection, host: addr, str: string%);
## Generated when an operating system has been fingerprinted. Bro uses `p0f
## <http://lcamtuf.coredump.cx/p0f.shtml>`__ to fingerprint endpoints passively,
## and it raises this event for each system identified. The p0f fingerprints are
## defined by :bro:id:`passive_fingerprint_file`.
##
## .. bro:see:: passive_fingerprint_file software_parse_error
## software_version_found software_unparsed_version_found
## generate_OS_version_event
event OS_version_found%(c: connection, host: addr, OS: OS_version%);
## Generated when a connection to a remote Bro has been established. This event
## is intended primarily for use by Bro's communication framework, but it can also
## trigger additional code if helpful.
##
## p: A record describing the peer.
##
## .. bro:see:: remote_capture_filter remote_connection_closed remote_connection_error
## remote_connection_handshake_done remote_event_registered remote_log remote_pong
## remote_state_access_performed remote_state_inconsistency print_hook
event remote_connection_established%(p: event_peer%);
## Generated when a connection to a remote Bro has been closed. This event is
## intended primarily for use by Bro's communication framework, but it can
## also trigger additional code if helpful.
##
## p: A record describing the peer.
##
## .. bro:see:: remote_capture_filter remote_connection_error
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_log remote_pong remote_state_access_performed
## remote_state_inconsistency print_hook
event remote_connection_closed%(p: event_peer%);
## Generated when a remote connection's initial handshake has been completed. This
## event is intended primarily for use by Bro's communication framework, but it can
## also trigger additional code if helpful.
##
## p: A record describing the peer.
##
## .. bro:see:: remote_capture_filter remote_connection_closed remote_connection_error
## remote_connection_established remote_event_registered remote_log remote_pong
## remote_state_access_performed remote_state_inconsistency print_hook
event remote_connection_handshake_done%(p: event_peer%);
## Generated for each event registered by a remote peer. This event is intended
## primarily for use by Bro's communication framework, but it can also trigger
## additional code if helpful.
##
## p: A record describing the peer.
##
## .. bro:see:: remote_capture_filter remote_connection_closed
## remote_connection_error remote_connection_established
## remote_connection_handshake_done remote_log remote_pong
## remote_state_access_performed remote_state_inconsistency print_hook
event remote_event_registered%(p: event_peer, name: string%);
## Generated when a connection to a remote Bro encountered an error. This event
## is intended primarily for use by Bro's communication framework, but it can also
## trigger additional code if helpful.
##
## p: A record describing the peer.
##
## reason: A textual description of the error.
##
## .. bro:see:: remote_capture_filter remote_connection_closed
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_log remote_pong remote_state_access_performed
## remote_state_inconsistency print_hook
event remote_connection_error%(p: event_peer, reason: string%);
## Generated when a remote peer sent us a capture filter. While this event is
## intended primarily for use by Bro's communication framework, it can also trigger
## additional code if helpful.
##
## p: A record describing the peer.
##
## filter: The filter string sent by the peer.
##
## .. bro:see:: remote_connection_closed remote_connection_error
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_log remote_pong remote_state_access_performed
## remote_state_inconsistency print_hook
event remote_capture_filter%(p: event_peer, filter: string%);
## Generated after a call to :bro:id:`send_state` when all data has been
## successfully sent to the remote side. While this event is
## intended primarily for use by Bro's communication framework, it can also trigger
## additional code if helpful.
##
## p: A record describing the remote peer.
##
## .. bro:see:: remote_capture_filter remote_connection_closed
## remote_connection_error remote_connection_established
## remote_connection_handshake_done remote_event_registered remote_log remote_pong
## remote_state_access_performed remote_state_inconsistency print_hook
event finished_send_state%(p: event_peer%);
## Generated if state synchronization detects an inconsistency. While this event
## is intended primarily for use by Bro's communication framework, it can also
## trigger additional code if helpful. This event is only raised if
## :bro:id:`remote_check_sync_consistency` is false.
##
## operation: The textual description of the state operation performed.
##
## id: The name of the Bro script identifier that was operated on.
##
## expected_old: A textual representation of the value of *id* that was expected to
## be found before the operation was carried out.
##
## real_old: A textual representation of the value of *id* that was actually found
## before the operation was carried out. The difference between
## *real_old* and *expected_old* is the inconsistency being reported.
##
## .. bro:see:: remote_capture_filter remote_connection_closed
## remote_connection_error remote_connection_established
## remote_connection_handshake_done remote_event_registered remote_log remote_pong
## remote_state_access_performed print_hook remote_check_sync_consistency
event remote_state_inconsistency%(operation: string, id: string,
expected_old: string, real_old: string%);
## Generated for communication log messages. While this event is
## intended primarily for use by Bro's communication framework, it can also trigger
## additional code if helpful.
##
## level: The log level, which is either :bro:id:`REMOTE_LOG_INFO` or
## :bro:id:`REMOTE_LOG_ERROR`.
##
## src: The component of the comminication system that logged the message.
## Currently, this will be one of :bro:id:`REMOTE_SRC_CHILD` (Bro's
## child process), :bro:id:`REMOTE_SRC_PARENT` (Bro's main process), or
## :bro:id:`REMOTE_SRC_SCRIPT` (the script level).
##
## msg: The message logged.
##
## .. bro:see:: remote_capture_filter remote_connection_closed remote_connection_error
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_pong remote_state_access_performed
## remote_state_inconsistency print_hook remote_log_peer
event remote_log%(level: count, src: count, msg: string%);
## Generated for communication log messages. While this event is
## intended primarily for use by Bro's communication framework, it can also trigger
## additional code if helpful. This event is equivalent to
## :bro:see:`remote_log` except the message is with respect to a certain peer.
##
## p: A record describing the remote peer.
##
## level: The log level, which is either :bro:id:`REMOTE_LOG_INFO` or
## :bro:id:`REMOTE_LOG_ERROR`.
##
## src: The component of the comminication system that logged the message.
## Currently, this will be one of :bro:id:`REMOTE_SRC_CHILD` (Bro's
## child process), :bro:id:`REMOTE_SRC_PARENT` (Bro's main process), or
## :bro:id:`REMOTE_SRC_SCRIPT` (the script level).
##
## msg: The message logged.
##
## .. bro:see:: remote_capture_filter remote_connection_closed remote_connection_error
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_pong remote_state_access_performed
## remote_state_inconsistency print_hook remote_log
event remote_log_peer%(p: event_peer, level: count, src: count, msg: string%);
## Generated when a remote peer has answered to our ping. This event is part of
## Bro's infrastructure for measuring communication latency. One can send a ping
## by calling :bro:id:`send_ping` and when a corresponding reply is received, this
## event will be raised.
##
## p: The peer sending us the pong.
##
## seq: The sequence number passed to the original :bro:id:`send_ping` call.
## The number is sent back by the peer in its response.
##
## d1: The time interval between sending the ping and receiving the pong. This
## is the latency of the complete path.
##
## d2: The time interval between sending out the ping to the network and its
## reception at the peer. This is the network latency.
##
## d3: The time interval between when the peer's child process received the
## ping and when its parent process sent the pong. This is the
## processing latency at the the peer.
##
## .. bro:see:: remote_capture_filter remote_connection_closed remote_connection_error
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_log remote_state_access_performed
## remote_state_inconsistency print_hook
event remote_pong%(p: event_peer, seq: count,
d1: interval, d2: interval, d3: interval%);
## Generated each time a remote state access has been replayed locally. This event
## is primarily intended for debugging. measurments.
##
## id: The name of the Bro script variable that's being operated on.
##
## v: The new value of the variable.
##
## .. bro:see:: remote_capture_filter remote_connection_closed remote_connection_error
## remote_connection_established remote_connection_handshake_done
## remote_event_registered remote_log remote_pong remote_state_inconsistency
## print_hook
event remote_state_access_performed%(id: string, v: any%);
## Generated each time Bro's internal profiling log is updated. The file is
## defined by :bro:id:`profiling_file`, and its update frequency by
## :bro:id:`profiling_interval` and :bro:id:`expensive_profiling_multiple`.
##
## f: The profiling file.
##
## expensive: True if this event corresponds to heavier-weight profiling as
## indicated by the :bro:id:`expensive_profiling_multiple` variable.
##
## .. bro:see:: profiling_interval expensive_profiling_multiple
event profiling_update%(f: file, expensive: bool%);
## Generated each time Bro's script interpreter opens a file. This event is
## triggered only for files opened via :bro:id:`open`, and in particular not for
## normal log files as created by a log writers.
##
## f: The opened file.
event file_opened%(f: file%);
## Generated for a received NetFlow v5 header. Bro's NetFlow processor raises this
## event whenever it either receives a NetFlow header on the port it's listening
## on, or reads one from a trace file.
##
## h: The parsed NetFlow header.
##
## .. bro:see:: netflow_v5_record
event netflow_v5_header%(h: nf_v5_header%);
## Generated for a received NetFlow v5 record. Bro's NetFlow processor raises this
## event whenever it either receives a NetFlow record on the port it's listening
## on, or reads one from a trace file.
##
## h: The parsed NetFlow header.
##
## .. bro:see:: netflow_v5_record
event netflow_v5_record%(r: nf_v5_record%);
## Raised for informational messages reported via Bro's reporter framework. Such
## messages may be generated internally by the event engine and also by other
## scripts calling :bro:id:`Reporter::info`.
##
## t: The time the message was passed to the reporter.
##
## msg: The message itself.
##
## location: A (potentially empty) string describing a location associated with the
## message.
##
## .. bro:see:: reporter_warning reporter_error Reporter::info Reporter::warning
## Reporter::error
##
## .. note:: Bro will not call reporter events recursively. If the handler of any
## reporter event triggers a new reporter message itself, the output will go to
## ``stderr`` instead.
event reporter_info%(t: time, msg: string, location: string%) &error_handler;
## Raised for warnings reported via Bro's reporter framework. Such messages may
## be generated internally by the event engine and also by other scripts calling
## :bro:id:`Reporter::warning`.
##
## t: The time the warning was passed to the reporter.
##
## msg: The warning message.
##
## location: A (potentially empty) string describing a location associated with the
## warning.
##
## .. bro:see:: reporter_info reporter_error Reporter::info Reporter::warning
## Reporter::error
##
## .. note:: Bro will not call reporter events recursively. If the handler of any
## reporter event triggers a new reporter message itself, the output will go to
## ``stderr`` instead.
event reporter_warning%(t: time, msg: string, location: string%) &error_handler;
## Raised for errors reported via Bro's reporter framework. Such messages may
## be generated internally by the event engine and also by other scripts calling
## :bro:id:`Reporter::error`.
##
## t: The time the error was passed to the reporter.
##
## msg: The error message.
##
## location: A (potentially empty) string describing a location associated with the
## error.
##
## .. bro:see:: reporter_info reporter_warning Reporter::info Reporter::warning
## Reporter::error
##
## .. note:: Bro will not call reporter events recursively. If the handler of any
## reporter event triggers a new reporter message itself, the output will go to
## ``stderr`` instead.
event reporter_error%(t: time, msg: string, location: string%) &error_handler;
## Raised for each policy script loaded by the script interpreter.
##
## path: The full path to the script loaded.
##
## level: The "nesting level": zero for a top-level Bro script and incremented
## recursively for each ``@load``.
event bro_script_loaded%(path: string, level: count%);
## Deprecated. Will be removed.
event stp_create_endp%(c: connection, e: int, is_orig: bool%);
# ##### Internal events. Not further documented.
## Event internal to the stepping stone detector.
event stp_resume_endp%(e: int%);
## Event internal to the stepping stone detector.
event stp_correlate_pair%(e1: int, e2: int%);
## Event internal to the stepping stone detector.
event stp_remove_pair%(e1: int, e2: int%);
## Event internal to the stepping stone detector.
event stp_remove_endp%(e: int%);
# ##### Deprecated events. Proposed for removal.
## Deprecated. Will be removed.
event interconn_stats%(c: connection, os: interconn_endp_stats, rs: interconn_endp_stats%);
## Deprecated. Will be removed.
event interconn_remove_conn%(c: connection%);
## Deprecated. Will be removed.
event backdoor_stats%(c: connection, os: backdoor_endp_stats, rs: backdoor_endp_stats%);
## Deprecated. Will be removed.
event backdoor_remove_conn%(c: connection%);
## Deprecated. Will be removed.
event ssh_signature_found%(c: connection, is_orig: bool%);
## Deprecated. Will be removed.
event telnet_signature_found%(c: connection, is_orig: bool, len: count%);
## Deprecated. Will be removed.
event rlogin_signature_found%(c: connection, is_orig: bool, num_null: count, len: count%);
## Deprecated. Will be removed.
event root_backdoor_signature_found%(c: connection%);
## Deprecated. Will be removed.
event ftp_signature_found%(c: connection%);
## Deprecated. Will be removed.
event napster_signature_found%(c: connection%);
## Deprecated. Will be removed.
event gnutella_signature_found%(c: connection%);
## Deprecated. Will be removed.
event kazaa_signature_found%(c: connection%);
## Deprecated. Will be removed.
event http_signature_found%(c: connection%);
## Deprecated. Will be removed.
event http_proxy_signature_found%(c: connection%);
## Deprecated. Will be removed.
event smtp_signature_found%(c: connection%);
## Deprecated. Will be removed.
event irc_signature_found%(c: connection%);
## Deprecated. Will be removed.
event gaobot_signature_found%(c: connection%);
## Deprecated. Will be removed.
##
## .. todo:: Unclear what this event is for; it's never raised. We should just
## remove it.
event dns_full_request%(%) &group="dns";
## Deprecated. Will be removed.
event anonymization_mapping%(orig: addr, mapped: addr%);
## Deprecated. Will be removed.
event rotate_interval%(f: file%);
## Deprecated. Will be removed.
event rotate_size%(f: file%);
## Deprecated. Will be removed.
event print_hook%(f:file, s: string%);