Committed by
Gerrit Code Review
BGP handle multiple update message processing
Change-Id: I61cba87876e27be63a8dfa5539d321e3e6273c09
Showing
1 changed file
with
6 additions
and
4 deletions
| ... | @@ -75,8 +75,9 @@ public abstract class BGPMessageVer4 { | ... | @@ -75,8 +75,9 @@ public abstract class BGPMessageVer4 { |
| 75 | } | 75 | } |
| 76 | } | 76 | } |
| 77 | short length = cb.readShort(); | 77 | short length = cb.readShort(); |
| 78 | - if (length != (cb.readableBytes() + HEADER_AND_MSG_LEN)) { | 78 | + if (length > cb.readableBytes() + HEADER_AND_MSG_LEN) { |
| 79 | - Validation.validateLen(BGPErrorType.MESSAGE_HEADER_ERROR, BGPErrorType.BAD_MESSAGE_LENGTH, length); | 79 | + Validation.validateLen(BGPErrorType.MESSAGE_HEADER_ERROR, |
| 80 | + BGPErrorType.BAD_MESSAGE_LENGTH, length); | ||
| 80 | } | 81 | } |
| 81 | bgpHeader.setLength(length); | 82 | bgpHeader.setLength(length); |
| 82 | byte type = cb.readByte(); | 83 | byte type = cb.readByte(); |
| ... | @@ -93,7 +94,7 @@ public abstract class BGPMessageVer4 { | ... | @@ -93,7 +94,7 @@ public abstract class BGPMessageVer4 { |
| 93 | return BGPKeepaliveMsgVer4.READER.readFrom(cb.readBytes(len), bgpHeader); | 94 | return BGPKeepaliveMsgVer4.READER.readFrom(cb.readBytes(len), bgpHeader); |
| 94 | case UPDATE_MSG_TYPE: | 95 | case UPDATE_MSG_TYPE: |
| 95 | log.debug("UPDATE MESSAGE is received"); | 96 | log.debug("UPDATE MESSAGE is received"); |
| 96 | - // TODO: Update message version 4 | 97 | + return BgpUpdateMsgVer4.READER.readFrom(cb.readBytes(len), bgpHeader); |
| 97 | case NOTIFICATION_MSG_TYPE: | 98 | case NOTIFICATION_MSG_TYPE: |
| 98 | log.debug("NOTIFICATION MESSAGE is received"); | 99 | log.debug("NOTIFICATION MESSAGE is received"); |
| 99 | return BGPNotificationMsgVer4.READER.readFrom(cb.readBytes(len), bgpHeader); | 100 | return BGPNotificationMsgVer4.READER.readFrom(cb.readBytes(len), bgpHeader); |
| ... | @@ -102,7 +103,8 @@ public abstract class BGPMessageVer4 { | ... | @@ -102,7 +103,8 @@ public abstract class BGPMessageVer4 { |
| 102 | return null; | 103 | return null; |
| 103 | } | 104 | } |
| 104 | } catch (IndexOutOfBoundsException e) { | 105 | } catch (IndexOutOfBoundsException e) { |
| 105 | - throw new BGPParseException(BGPErrorType.MESSAGE_HEADER_ERROR, BGPErrorType.BAD_MESSAGE_LENGTH, null); | 106 | + throw new BGPParseException(BGPErrorType.MESSAGE_HEADER_ERROR, |
| 107 | + BGPErrorType.BAD_MESSAGE_LENGTH, null); | ||
| 106 | } | 108 | } |
| 107 | } | 109 | } |
| 108 | } | 110 | } | ... | ... |
-
Please register or login to post a comment