summaryrefslogtreecommitdiffstats
path: root/isisd
diff options
context:
space:
mode:
authorpaul <paul>2005-02-09 16:51:56 +0100
committerpaul <paul>2005-02-09 16:51:56 +0100
commit9985f83ce7102f64b15f744b60320f8d14a8a5ff (patch)
tree344629bdc2b4a7d53b8d7ca1705c9be2ca282d18 /isisd
parent2005-02-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu> (diff)
downloadfrr-9985f83ce7102f64b15f744b60320f8d14a8a5ff.tar.xz
frr-9985f83ce7102f64b15f744b60320f8d14a8a5ff.zip
2005-02-09 Paul Jakma <paul.jakma@sun.com>
* (global) Update code to match stream.h changes. stream_get_putp effectively replaced with stream_get_endp. stream_forward renamed to stream_forward_getp. stream_forward_endp introduced to replace some previous setting/manual twiddling of putp by daemons. * lib/stream.h: Remove putp. Update reference to putp with endp. Add stream_forward_endp, which daemons were doing manually. Rename stream_forward to stream_forward_getp. lib/stream.c: Remove/update references to putp. introduce stream_forward_endp.
Diffstat (limited to 'isisd')
-rw-r--r--isisd/isis_lsp.c16
-rw-r--r--isisd/isis_network.c12
-rw-r--r--isisd/isis_pdu.c19
-rw-r--r--isisd/isis_tlv.c15
4 files changed, 25 insertions, 37 deletions
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 8dae147f4..52d8884dd 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -369,7 +369,6 @@ lsp_update_data (struct isis_lsp *lsp, struct stream *stream,
/* copying only the relevant part of our stream */
lsp->pdu = stream_new (stream->endp);
- lsp->pdu->putp = stream->putp;
lsp->pdu->getp = stream->getp;
lsp->pdu->endp = stream->endp;
memcpy (lsp->pdu->data, stream->data, stream->endp);
@@ -509,7 +508,7 @@ lsp_new (u_char * lsp_id, u_int16_t rem_lifetime, u_int32_t seq_num,
lsp->level = level;
lsp->age_out = ZERO_AGE_LIFETIME;
- stream_set_putp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
+ stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
/* #ifdef EXTREME_DEBUG */
/* logging */
@@ -1141,7 +1140,7 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
}
}
- stream_set_putp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
+ stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
if (lsp->tlv_data.nlpids)
tlv_add_nlpid (lsp->tlv_data.nlpids, lsp->pdu);
@@ -1159,7 +1158,7 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
tlv_add_ipv6_reachs (lsp->tlv_data.ipv6_reachs, lsp->pdu);
#endif /* HAVE_IPV6 */
- lsp->lsp_header->pdu_len = htons (stream_get_putp (lsp->pdu));
+ lsp->lsp_header->pdu_len = htons (stream_get_endp (lsp->pdu));
return;
}
@@ -1200,7 +1199,7 @@ lsp_tlv_fit (struct isis_lsp *lsp, struct list **from, struct list **to,
}
tlv_build_func (*to, lsp->pdu);
}
- lsp->lsp_header->pdu_len = htons (stream_get_putp (lsp->pdu));
+ lsp->lsp_header->pdu_len = htons (stream_get_endp (lsp->pdu));
return;
}
@@ -1319,7 +1318,7 @@ lsp_build_nonpseudo (struct isis_lsp *lsp, struct isis_area *area)
/*
* Building the zero lsp
*/
- stream_set_putp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
+ stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
/*
* Add the authentication info if its present
*/
@@ -1929,7 +1928,7 @@ lsp_build_pseudo (struct isis_lsp *lsp, struct isis_circuit *circuit,
}
}
- stream_set_putp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
+ stream_forward_endp (lsp->pdu, ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
/*
* Add the authentication info if it's present
*/
@@ -1947,7 +1946,7 @@ lsp_build_pseudo (struct isis_lsp *lsp, struct isis_circuit *circuit,
if (lsp->tlv_data.es_neighs && listcount (lsp->tlv_data.es_neighs) > 0)
tlv_add_is_neighs (lsp->tlv_data.es_neighs, lsp->pdu);
- lsp->lsp_header->pdu_len = htons (stream_get_putp (lsp->pdu));
+ lsp->lsp_header->pdu_len = htons (stream_get_endp (lsp->pdu));
iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
ntohs (lsp->lsp_header->pdu_len) - 12, 12);
@@ -2473,7 +2472,6 @@ build_topology_lsp_data (struct isis_lsp *lsp, struct isis_area *area,
}
/* thanks to hannes, another bug bites the dust */
- lsp->pdu->putp = ntohs (lsp->lsp_header->pdu_len);
lsp->pdu->endp = ntohs (lsp->lsp_header->pdu_len);
}
#endif /* TOPOLOGY_GENERATE */
diff --git a/isisd/isis_network.c b/isisd/isis_network.c
index a0df32e37..2e901f1a3 100644
--- a/isisd/isis_network.c
+++ b/isisd/isis_network.c
@@ -422,7 +422,6 @@ isis_recv_pdu_bcast (struct isis_circuit *circuit, u_char * ssnpa)
/* then we lose the LLC */
memcpy (STREAM_DATA (circuit->rcv_stream),
sock_buff + LLC_LEN, bytesread - LLC_LEN);
- circuit->rcv_stream->putp = bytesread - LLC_LEN;
circuit->rcv_stream->endp = bytesread - LLC_LEN;
memcpy (ssnpa, &s_addr.sll_addr, s_addr.sll_halen);
@@ -453,7 +452,6 @@ isis_recv_pdu_p2p (struct isis_circuit *circuit, u_char * ssnpa)
return ISIS_WARNING;
}
- circuit->rcv_stream->putp = bytesread;
circuit->rcv_stream->endp = bytesread;
/* If we don't have protocol type 0x00FE which is
@@ -503,7 +501,7 @@ isis_send_pdu_bcast (struct isis_circuit *circuit, int level)
/* now we can send this */
written = sendto (circuit->fd, sock_buff,
- circuit->snd_stream->putp + LLC_LEN, 0,
+ stream_get_endp(circuit->snd_stream) + LLC_LEN, 0,
(struct sockaddr *) &sa, sizeof (struct sockaddr_ll));
return ISIS_OK;
@@ -531,7 +529,8 @@ isis_send_pdu_p2p (struct isis_circuit *circuit, int level)
/* lets try correcting the protocol */
sa.sll_protocol = htons (0x00FE);
written = sendto (circuit->fd, circuit->snd_stream->data,
- circuit->snd_stream->putp, 0, (struct sockaddr *) &sa,
+ stream_get_endp (circuit->snd_stream), 0,
+ (struct sockaddr *) &sa,
sizeof (struct sockaddr_ll));
return ISIS_OK;
@@ -576,7 +575,6 @@ isis_recv_pdu_bcast (struct isis_circuit *circuit, u_char * ssnpa)
memcpy (STREAM_DATA (circuit->rcv_stream),
readbuff + offset, bpf_hdr->bh_caplen - LLC_LEN - ETHER_HDR_LEN);
- circuit->rcv_stream->putp = bpf_hdr->bh_caplen - LLC_LEN - ETHER_HDR_LEN;
circuit->rcv_stream->endp = bpf_hdr->bh_caplen - LLC_LEN - ETHER_HDR_LEN;
circuit->rcv_stream->getp = 0;
@@ -603,7 +601,6 @@ isis_recv_pdu_p2p (struct isis_circuit *circuit, u_char * ssnpa)
return ISIS_WARNING;
}
- circuit->rcv_stream->putp = bytesread;
circuit->rcv_stream->endp = bytesread;
return ISIS_OK;
@@ -641,7 +638,8 @@ isis_send_pdu_bcast (struct isis_circuit *circuit, int level)
/* now we can send this */
written = write (circuit->fd, sock_buff,
- circuit->snd_stream->putp + LLC_LEN + ETHER_HDR_LEN);
+ stream_get_endp (circuit->snd_stream)
+ + LLC_LEN + ETHER_HDR_LEN);
return ISIS_OK;
}
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index b6a035e1d..6dcc75e98 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -1938,7 +1938,7 @@ send_hello (struct isis_circuit *circuit, int level)
hello_hdr.hold_time = htons ((u_int16_t) interval);
hello_hdr.pdu_len = 0; /* Update the PDU Length later */
- len_pointer = stream_get_putp (circuit->snd_stream) + 3 + ISIS_SYS_ID_LEN;
+ len_pointer = stream_get_endp (circuit->snd_stream) + 3 + ISIS_SYS_ID_LEN;
/* copy the shared part of the hello to the p2p hello if needed */
if (circuit->circ_type == CIRCUIT_T_P2P)
@@ -2012,7 +2012,7 @@ send_hello (struct isis_circuit *circuit, int level)
if (tlv_add_padding (circuit->snd_stream))
return ISIS_WARNING;
- length = stream_get_putp (circuit->snd_stream);
+ length = stream_get_endp (circuit->snd_stream);
/* Update PDU length */
stream_putw_at (circuit->snd_stream, len_pointer, (u_int16_t) length);
@@ -2132,7 +2132,7 @@ build_csnp (int level, u_char * start, u_char * stop, struct list *lsps,
* Fill Level 1 or 2 Complete Sequence Numbers header
*/
- lenp = stream_get_putp (circuit->snd_stream);
+ lenp = stream_get_endp (circuit->snd_stream);
stream_putw (circuit->snd_stream, 0); /* PDU length - when we know it */
/* no need to send the source here, it is always us if we csnp */
stream_put (circuit->snd_stream, isis->sysid, ISIS_SYS_ID_LEN);
@@ -2159,7 +2159,7 @@ build_csnp (int level, u_char * start, u_char * stop, struct list *lsps,
{
retval = tlv_add_lsp_entries (lsps, circuit->snd_stream);
}
- length = (u_int16_t) stream_get_putp (circuit->snd_stream);
+ length = (u_int16_t) stream_get_endp (circuit->snd_stream);
assert (length >= ISIS_CSNP_HDRLEN);
/* Update PU length */
stream_putw_at (circuit->snd_stream, lenp, length);
@@ -2287,7 +2287,7 @@ build_psnp (int level, struct isis_circuit *circuit, struct list *lsps)
/*
* Fill Level 1 or 2 Partial Sequence Numbers header
*/
- lenp = stream_get_putp (circuit->snd_stream);
+ lenp = stream_get_endp (circuit->snd_stream);
stream_putw (circuit->snd_stream, 0); /* PDU length - when we know it */
stream_put (circuit->snd_stream, isis->sysid, ISIS_SYS_ID_LEN);
stream_putc (circuit->snd_stream, circuit->idx);
@@ -2325,7 +2325,7 @@ build_psnp (int level, struct isis_circuit *circuit, struct list *lsps)
}
}
- length = (u_int16_t) stream_get_putp (circuit->snd_stream);
+ length = (u_int16_t) stream_get_endp (circuit->snd_stream);
assert (length >= ISIS_PSNP_HDRLEN);
/* Update PDU length */
stream_putw_at (circuit->snd_stream, lenp, length);
@@ -2446,7 +2446,7 @@ build_link_state (struct isis_lsp *lsp, struct isis_circuit *circuit,
unsigned long length;
stream_put (stream, lsp->pdu, ntohs (lsp->lsp_header->pdu_len));
- length = stream_get_putp (stream);
+ length = stream_get_endp (stream);
return;
} */
@@ -2501,7 +2501,6 @@ send_lsp (struct thread *thread)
}
/* copy our lsp to the send buffer */
circuit->snd_stream->getp = lsp->pdu->getp;
- circuit->snd_stream->putp = lsp->pdu->putp;
circuit->snd_stream->endp = lsp->pdu->endp;
memcpy (circuit->snd_stream->data, lsp->pdu->data, lsp->pdu->endp);
@@ -2577,7 +2576,7 @@ ack_lsp (struct isis_link_state_hdr *hdr, struct isis_circuit *circuit,
circuit->snd_stream);
- lenp = stream_get_putp (circuit->snd_stream);
+ lenp = stream_get_endp (circuit->snd_stream);
stream_putw (circuit->snd_stream, 0); /* PDU length */
stream_put (circuit->snd_stream, isis->sysid, ISIS_SYS_ID_LEN);
stream_putc (circuit->snd_stream, circuit->idx);
@@ -2589,7 +2588,7 @@ ack_lsp (struct isis_link_state_hdr *hdr, struct isis_circuit *circuit,
stream_putl (circuit->snd_stream, ntohl (hdr->seq_num));
stream_putw (circuit->snd_stream, ntohs (hdr->checksum));
- length = (u_int16_t) stream_get_putp (circuit->snd_stream);
+ length = (u_int16_t) stream_get_endp (circuit->snd_stream);
/* Update PDU length */
stream_putw_at (circuit->snd_stream, lenp, length);
diff --git a/isisd/isis_tlv.c b/isisd/isis_tlv.c
index 84f36c93c..bc6536323 100644
--- a/isisd/isis_tlv.c
+++ b/isisd/isis_tlv.c
@@ -751,7 +751,7 @@ int
add_tlv (u_char tag, u_char len, u_char * value, struct stream *stream)
{
- if (STREAM_SIZE (stream) - stream_get_putp (stream) < (unsigned) len + 2)
+ if (STREAM_SIZE (stream) - stream_get_endp (stream) < (unsigned) len + 2)
{
zlog_warn ("No room for TLV of type %d", tag);
return ISIS_WARNING;
@@ -1065,7 +1065,6 @@ tlv_add_ipv6_reachs (struct list *ipv6_reachs, struct stream *stream)
int
tlv_add_padding (struct stream *stream)
{
- unsigned long putp, endp;
int fullpads, i, left;
/*
@@ -1078,15 +1077,10 @@ tlv_add_padding (struct stream *stream)
goto err;
if (!stream_putc (stream, (u_char) 255)) /* LENGHT */
goto err;
- endp = stream_get_endp (stream);
- putp = stream_get_putp (stream);
- if (putp != endp)
- zlog_warn ("tvl_add_padding endp %ld while putp %ld", endp, putp);
- stream_set_putp (stream, putp + 255); /* VALUE */
- stream->endp = stream->putp;
+ stream_forward_endp (stream, 255); /* VALUE */
}
- left = STREAM_SIZE (stream) - stream_get_putp (stream);
+ left = STREAM_SIZE (stream) - stream_get_endp (stream);
if (left < 2)
return ISIS_OK;
@@ -1100,8 +1094,7 @@ tlv_add_padding (struct stream *stream)
stream_putc (stream, PADDING);
stream_putc (stream, left - 2);
- stream_set_putp (stream, stream_get_putp (stream) + left - 2);
- stream->endp = stream->putp;
+ stream_forward_endp (stream, left - 2);
return ISIS_OK;