Hi,

2005-08-04, cs keltezéssel 12.56-kor Ulrich Weber ezt írta:
> thanks for revising Patrick! Attached is the updated patch.
> Sorry had no time yet to remove the sysctl variables.
> It will follow in a few weeks if I have more time :)

  Ulrich, I already have some code which supports per-state difference
settings, along with optional time limits. I don't know whether or not
the latter would be necessary or not, but putting the per-state diff
values would be trivial. I'll send a patch in a couple of days if I find
the time to hack it together.

  Some questions below:

> diff -Nru linux-2.6.13-rc3.org/include/net/xfrm.h 
> linux-2.6.13-rc3/include/net/xfrm.h
> --- linux-2.6.13-rc3.org/include/net/xfrm.h   2005-07-18 10:24:11.000000000 
> +0200
> +++ linux-2.6.13-rc3/include/net/xfrm.h       2005-08-04 12:28:36.000000000 
> +0200
> @@ -134,6 +134,9 @@
>       /* State for replay detection */
>       struct xfrm_replay_state replay;
>  
> +     /* Replay detection state at the time we sent the last notification */
> +     struct xfrm_replay_state preplay;
> +
>       /* Statistics */
>       struct xfrm_stats       stats;
>  
> @@ -301,6 +304,10 @@
>       struct xfrm_tmpl        xfrm_vec[XFRM_MAX_DEPTH];
>  };
>  
> +/* which seqno */
> +#define XFRM_REPLAY_INBOUND  1
> +#define XFRM_REPLAY_OUTBOUND 2
> +
>  #define XFRM_KM_TIMEOUT              30
>  
>  struct xfrm_mgr
> @@ -312,6 +319,7 @@
>       struct xfrm_policy      *(*compile_policy)(u16 family, int opt, u8 
> *data, int len, int *dir);
>       int                     (*new_mapping)(struct xfrm_state *x, 
> xfrm_address_t *ipaddr, u16 sport);
>       int                     (*notify_policy)(struct xfrm_policy *x, int 
> dir, struct km_event *c);
> +     int                     (*notify_seq)(struct xfrm_state *x, u32 pid, 
> u32 seq);

  Why do you need the pid and seq argument here? The sequence number is
redundant information anyway. In turn, you don't seem to pass the event
in to the notify_seq() callback, which could be handy in some cases. So
IMHO something like

  notify_seq(struct xfrm_state *x, int event)

would be more general.

> --- linux-2.6.13-rc3.org/net/key/af_key.c     2005-07-18 10:49:41.000000000 
> +0200
> +++ linux-2.6.13-rc3/net/key/af_key.c 2005-07-19 10:10:22.000000000 +0200
> @@ -2860,6 +2860,12 @@
>       return pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_REGISTERED, NULL);
>  }
>  
> +static int pfkey_send_replay_notify(struct xfrm_state *x, u32 pid, u32 seq)
> +{
> +     /* FIXME: To be done*/
> +     return 0;
> +}

  I also have a PF_KEY implementation of these features, but since we
have to define new message types to support all the features this is a
hard thing... (And consequently the code is more of a hack than correct
implementation.)

-- 
 Regards,
  Krisztian Kovacs

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to