Browse Source

[2995] First set of changes after review.

Tomek Mrugalski 11 years ago
parent
commit
bdeeb21d2f
3 changed files with 55 additions and 52 deletions
  1. 48 42
      src/bin/dhcp6/dhcp6_hooks.dox
  2. 7 6
      src/bin/dhcp6/dhcp6_messages.mes
  3. 0 4
      src/bin/dhcp6/dhcp6_srv.h

+ 48 - 42
src/bin/dhcp6/dhcp6_hooks.dox

@@ -44,6 +44,49 @@
 
 @section dhcpv6HooksHookPoints Hooks in the DHCPv6 Server
 
+The following list is ordered by appearance of specific hook points during
+packet processing. Hook points that are not specific to packet processing
+(e.g. lease expiration) will be added to the end of this list.
+
+ @subsection dhcpv6HooksPkt6Receive pkt6_receive
+
+ - @b Arguments:
+   - name: @b pkt6, type: isc::dhcp::Pkt6Ptr, direction: <b>in/out</b>
+
+ - @b Description: this callout is executed when an incoming DHCPv6
+   packet is received and its content is parsed. The sole argument -
+   pkt6 - contains a pointer to an isc::dhcp::Pkt6 object that contains all
+   information regarding incoming packet, including its source and
+   destination addresses, interface over which it was received, a list
+   of all options present within and relay information. See Pkt6 class
+   definition for details. All fields of the Pkt6 class can be
+   modified at this time, except data_ (which contains incoming packet
+   as raw buffer, but that information was already parsed, so it
+   doesn't make sense to modify it at this time).
+
+ - <b>Skip flag action</b>: If any callout sets the skip flag, the server will
+   drop the packet and will not do anything with it except logging a drop
+   reason if debugging is enabled.
+
+@subsection dhcpv6HooksSubnet6Select subnet6_select
+
+ - @b Arguments:
+   - name: @b pkt6, type: isc::dhcp::Pkt6Ptr, direction: <b>in/out</b>
+   - name: @b subnet6, type: isc::dhcp::Subnet6Ptr, direction: <b>in/out</b>
+   - name: @b subnet6collection, type: const isc::dhcp::Subnet6Collection&, direction: <b>in</b>
+
+ - @b Description: this callout is executed when a subnet is being
+   selected for incoming packet. All parameters, addresses and
+   prefixes will be assigned from that subnet. Callout can select a
+   different subnet if it wishes so. The list of all subnets currently
+   configured is provided as 'subnet6collection'. The list itself must
+   not be modified.
+
+ - <b>Skip flag action</b>: If any callout installed on 'subnet6_select'
+   sets the skip flag, the server will not select any subnet. Packet processing
+   will continue, but will be severely limited (i.e. only global options
+   will be assigned).
+
 @subsection dhcpv6HooksLeaseSelect lease6_select
 
  - @b Arguments:
@@ -67,26 +110,6 @@
  - <b>Skip flag action</b>: the "skip" flag is ignored by the server on this
    hook.
 
- @subsection dhcpv6HooksPkt6Receive pkt6_receive
-
- - @b Arguments:
-   - name: @b pkt6, type: isc::dhcp::Pkt6Ptr, direction: <b>in/out</b>
-
- - @b Description: this callout is executed when an incoming DHCPv6
-   packet is received and its content is parsed. The sole argument -
-   pkt6 - contains a pointer to an isc::dhcp::Pkt6 object that contains all
-   information regarding incoming packet, including its source and
-   destination addresses, interface over which it was received, a list
-   of all options present within and relay information. See Pkt6 class
-   definition for details. All fields of the Pkt6 class can be
-   modified at this time, except data_ (which contains incoming packet
-   as raw buffer, but that information was already parsed, so it
-   doesn't make sense to modify it at this time).
-   
- - <b>Skip flag action</b>: If any callout sets the skip flag, the server will
-   drop the packet and will not do anything with it except logging a drop
-   reason if debugging is enabled.
-
 @subsection dhcpv6HooksPkt6Send pkt6_send
 
  - @b Arguments:
@@ -101,28 +124,11 @@
    modified at this time, except bufferOut_.  (This is scratch space used for
    constructing the packet after all pkt6_send callouts are complete, so any
    changes to that field will be overwritten.)
-  
- - <b>Skip flag action</b>: if any callout sets the skip
-   flag, the server will drop the packet and will not do anything with
-   it, except logging a drop reason if debugging is enabled.
-
-@subsection dhcpv6HooksSubnet6Select subnet6_select
-
- - @b Arguments:
-   - name: @b pkt6, type: isc::dhcp::Pkt6Ptr, direction: <b>in/out</b>
-   - name: @b subnet6, type: isc::dhcp::Subnet6Ptr, direction: <b>in/out</b>
-   - name: @b subnet6collection, type: const isc::dhcp::Subnet6Collection&, direction: <b>in</b>
 
- - @b Description: this callout is executed when a subnet is being
-   selected for incoming packet. All parameters, addresses and
-   prefixes will be assigned from that subnet. Callout can select a
-   different subnet if it wishes so. The list of all subnets currently
-   configured is provided as 'subnet6collection'. The list itself must
-   not be modified.
-   
- - <b>Skip flag action</b>: If any callout installed on 'subnet6_select'
-   sets the skip flag, the server will not select any subnet. Packet processing
-   will continue, but will be severely limited (i.e. only global options
-   will be assigned).
+ - <b>Skip flag action</b>: if any callout sets the skip
+   flag, the server will drop this response packet. However, the original
+   request packet from a client was processed, so server's state was likely
+   changed (e.g. lease was allocated). This flag will merely stop the
+   change to be communicated to the client.
 
 */

+ 7 - 6
src/bin/dhcp6/dhcp6_messages.mes

@@ -67,15 +67,16 @@ lease and other information.
 
 % DHCP6_HOOK_PACKET_RCVD_SKIP received DHCPv6 packet was dropped, because a callout set skip flag.
 This debug message is printed when a callout installed on pkt6_received
-hook point sets skip flag. This flag instructs the server to skip the next processing
-stage, which would be to handle the packet. This effectively means drop the packet.
+hook point sets skip flag. For this particular hook point, the setting
+of the flag by a callout instructs the server to drop the packet.
 
 % DHCP6_HOOK_PACKET_SEND_SKIP Prepared DHCPv6 response was not sent, because a callout set skip flag.
 This debug message is printed when a callout installed on pkt6_send
-hook point sets skip flag. This flag instructs the server to skip the next processing
-stage, which would be to send a response. This effectively means that the client will
-not get any response, even though the server processed client's request and acted on
-it (e.g. could possible allocate a lease).
+hook point sets skip flag. For this particular hook point, the setting
+of the flag by a callout instructs the server to drop the packet. This
+effectively means that the client will not get any response, even though
+the server processed client's request and acted on it (e.g. possibly
+allocated a lease).
 
 % DHCP6_HOOK_SUBNET6_SELECT_SKIP No subnet was selected, because a callout set skip flag.
 This debug message is printed when a callout installed on subnet6_select

+ 0 - 4
src/bin/dhcp6/dhcp6_srv.h

@@ -366,10 +366,6 @@ private:
 
     isc::hooks::CalloutHandlePtr getCalloutHandle(const Pkt6Ptr& pkt);
 
-    void packetProcessStart(const Pkt6Ptr& pkt);
-
-    void packetProcessEnd(const Pkt6Ptr& pkt);
-
     /// Indexes for registered hook points
     int hook_index_pkt6_receive_;
     int hook_index_subnet6_select_;