You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[DCCP]: Introduce dccp_ipv4_af_ops
And make the core DCCP code AF agnostic, just like TCP, now its time to work on net/dccp/ipv6.c, we are close to the end! Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
af05dc9394
commit
57cca05af1
+6
-8
@@ -43,6 +43,7 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
if (likely(skb != NULL)) {
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
const struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
struct dccp_sock *dp = dccp_sk(sk);
|
||||
struct dccp_skb_cb *dcb = DCCP_SKB_CB(skb);
|
||||
struct dccp_hdr *dh;
|
||||
@@ -108,8 +109,7 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
break;
|
||||
}
|
||||
|
||||
dh->dccph_checksum = dccp_v4_checksum(skb, inet->saddr,
|
||||
inet->daddr);
|
||||
icsk->icsk_af_ops->send_check(sk, skb->len, skb);
|
||||
|
||||
if (set_ack)
|
||||
dccp_event_ack_sent(sk);
|
||||
@@ -117,7 +117,7 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
DCCP_INC_STATS(DCCP_MIB_OUTSEGS);
|
||||
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
err = ip_queue_xmit(skb, 0);
|
||||
err = icsk->icsk_af_ops->queue_xmit(skb, 0);
|
||||
if (err <= 0)
|
||||
return err;
|
||||
|
||||
@@ -135,16 +135,14 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
unsigned int dccp_sync_mss(struct sock *sk, u32 pmtu)
|
||||
{
|
||||
struct dccp_sock *dp = dccp_sk(sk);
|
||||
int mss_now;
|
||||
|
||||
/*
|
||||
* FIXME: we really should be using the af_specific thing to support
|
||||
* IPv6.
|
||||
* mss_now = pmtu - tp->af_specific->net_header_len -
|
||||
* sizeof(struct dccp_hdr) - sizeof(struct dccp_hdr_ext);
|
||||
*/
|
||||
mss_now = pmtu - sizeof(struct iphdr) - sizeof(struct dccp_hdr) -
|
||||
sizeof(struct dccp_hdr_ext);
|
||||
int mss_now = (pmtu - inet_csk(sk)->icsk_af_ops->net_header_len -
|
||||
sizeof(struct dccp_hdr) - sizeof(struct dccp_hdr_ext));
|
||||
|
||||
/* Now subtract optional transport overhead */
|
||||
mss_now -= dp->dccps_ext_header_len;
|
||||
@@ -266,7 +264,7 @@ int dccp_write_xmit(struct sock *sk, struct sk_buff *skb, long *timeo)
|
||||
|
||||
int dccp_retransmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
if (inet_sk_rebuild_header(sk) != 0)
|
||||
if (inet_csk(sk)->icsk_af_ops->rebuild_header(sk) != 0)
|
||||
return -EHOSTUNREACH; /* Routing failure or similar. */
|
||||
|
||||
return dccp_transmit_skb(sk, (skb_cloned(skb) ?
|
||||
|
||||
Reference in New Issue
Block a user