|
Attachment karaf.zip has been added with description: zipped logs
|
|
java.lang.IllegalStateException: Optional.get() cannot be called on an absent value
at com.google.common.base.Absent.get(Absent.java:47)[39:com.google.guava:18.0.0]
at org.opendaylight.protocol.bgp.flowspec.FSNlriParser.extractFlowspec(FSNlriParser.java:661)[260:org.opendaylight.bgpcep.bgp-flowspec:0.4.0.Lithium]
at org.opendaylight.protocol.bgp.flowspec.FlowspecRIBSupport.buildReach(FlowspecRIBSupport.java:177)[260:org.opendaylight.bgpcep.bgp-flowspec:0.4.0.Lithium]
at org.opendaylight.protocol.bgp.rib.spi.AbstractRIBSupport.buildUpdate(AbstractRIBSupport.java:253)[253:org.opendaylight.bgpcep.bgp-rib-spi:0.4.0.Lithium]
at org.opendaylight.protocol.bgp.rib.impl.AdjRibOutListener.advertise(AdjRibOutListener.java:113)[259:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.Lithium]
at org.opendaylight.protocol.bgp.rib.impl.AdjRibOutListener.onDataTreeChanged(AdjRibOutListener.java:84)[259:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.Lithium]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:53)[191:org.opendaylight.controller.sal-distributed-datastore:1.2.0.Lithium]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:37)[191:org.opendaylight.controller.sal-distributed-datastore:1.2.0.Lithium]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)[183:org.opendaylight.controller.sal-clustering-commons:1.2.0.Lithium]
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)[176:com.typesafe.akka.actor:2.3.10]
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[176:com.typesafe.akka.actor:2.3.10]
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)[176:com.typesafe.akka.actor:2.3.10]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[176:com.typesafe.akka.actor:2.3.10]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[176:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)[176:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.Mailbox.run(Mailbox.scala:221)[176:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.Mailbox.exec(Mailbox.scala:231)[176:com.typesafe.akka.actor:2.3.10]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[173:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[173:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[173:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[173:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
|
|
Giles: could you post how the route looks like in AdjRibOut?
And I'm pretty sure that you don't need to put route-key/component-type yourself, that is generated from the content of the route.https://wiki.opendaylight.org/view/BGP_LS_PCEP:BGP#BGP_flowspec
ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)flowspec-route[
{(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)route-key=foo}
], value=[ImmutableUnkeyedListNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)flowspec, value=[ImmutableUnkeyedListEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)flowspec, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)component-type, value=destination-port, attributes={}},
ImmutableChoiceNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)flowspec-type, value=[ImmutableUnkeyedListNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)destination-ports, value=[ImmutableUnkeyedListEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)destination-ports, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)op, value=[equals], attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-flowspec?revision=2015-01-14)value, value=8080, attributes={}}], attributes={}}]}]}], attributes={}}]},
|
|
shouldn't it be like this?
<flowspec>
<component-type>destination-port</component-type>
<flowspec-type>
<destination-ports>
<op>equals</op>
<value>8080</value>
</destination-ports>
</flowspec-type>
</flowspec>
on level of component-type is flowspec-type, then destination-ports (or others) are read. (from what is in code, and also tree structure in comment above)
|
|
(In reply to Iveta Halanova from comment #3)
> shouldn't it be like this?
>
> <flowspec>
> <component-type>destination-port</component-type>
> <flowspec-type>
> <destination-ports>
> <op>equals</op>
> <value>8080</value>
> </destination-ports>
> </flowspec-type>
> </flowspec>
>
> on level of component-type is flowspec-type, then destination-ports (or
> others) are read. (from what is in code, and also tree structure in comment
> above)
Hi Iveta,
the choice and case don't appear in the instance data.
So I'd expect (with the new model):
<flowspec-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp-flowspec">
<route-key>foo</route-key>
<flowspec>
<destination-ports>
<op>equals</op>
<value>8080</value>
</destination-ports>
</flowspec>
<attributes>
<origin>
<value>igp</value>
</origin>
<ipv4-next-hop>
<global>172.23.29.110</global>
</ipv4-next-hop>
<as-path/>
<local-pref>
<pref>100</pref>
</local-pref>
<extended-communities>
<comm-type>128</comm-type>
<comm-sub-type>7</comm-sub-type>
</extended-communities>
</attributes>
</flowspec-route>
having done that it seems to work now - at least inasmuch as it advertises the route to XR. But XR doesn't much like the route it gets:
RP/0/RSP0/CPU0:i2ss-asr9k1#RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains nh 172.23.29.110/32, gw_afi 0, flags 0x20000, nlri_afi 18
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: NH-Validate-Create: addr=172.23.29.110/32, len=4, nlriafi=18, nbr=172.23.29.110, gwafi=0, gwlen=4, gwaddrlen=32::: nhout=0x5113dfec, validity=1, attrwdrflags=0x00000000
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains EXTCOMMUNITY attribute with wrong length 2
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: !!!!!!!!!!!!!:: ERROR_HANDLING<<172.23.29.110>> :: errfl=0x00000080, attrfl=0xc0, attrcode=16, attrlen=2:: errhenabled=1, action=4:: MSG=513e9854 (fl=0x00000080, finalaction=4, elemcount=1):: msglindex=4, msgcount=5
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains EXTCOMMUNITY attribute with wrong length 2
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: !!!!!!!!!!!!!:: ERROR_HANDLING<<172.23.29.110>> :: errfl=0x00000080, attrfl=0xc0, attrcode=16, attrlen=2:: errhenabled=1, action=4:: MSG=513e9854 (fl=0x00000080, finalaction=4, elemcount=2):: msglindex=4, msgcount=5
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: -bgp4_rcv_attributes-: END: nbr=172.23.29.110:: msg=0x5060fdcc/59, updlen=40, attrbl=0x5060fde3/36, ipv4reachlen=0, msginpath=0x3fbf0b00, asloopcheck=1, attrwdrfl=0x00000000:: samecluster=0, local_as_prepended=0, attr_wdr_flags 0x00000000, myascount=0:: rcvdata=0x5060fe07/0, errptr=0x5060fe02/5
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): Received unreachables from 172.23.29.110: attrcode=14, attrwdrflags=0x00000000
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): Martian network 0/ (path ID: none) in update from 172.23.29.110
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): UPDATE from 172.23.29.110 with attributes:
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): nexthop 172.23.29.110/32, origin i, path 64496
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): UPDATE from 172.23.29.110, prefix 0/ (path ID: none) DENIED due to:
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): malformed update 'treat-as-withdraw';
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: %ROUTING-BGP-3-MALFORM_UPDATE : Malformed UPDATE message received from neighbor 172.23.29.110 (VRF: default) - message length 59 bytes, error flags 0x00000080, action taken "TreatAsWdr". Error details: "Error 0x00000080, Field "Attr-length", Attribute 16 (Flags 0xc0, Length 2), Data [c0100280]". NLRIs: [IPv4 Flowspec] 0/
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: !!!#!#-!!:: Received Malformed UPDATE from nbr 172.23.29.110:: msglen=59, errflags=0x00000080, finalaction=TreatAsWdr:: elemcount=2, lastelem=
{"Error 0x00000080, Field "Attr-length", Attribute 16 (Flags 0xc0, Length 2), Data [c0100280]"}
:: ERRCTX=msglindex=4, malformcount=5, memfailcount=0
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: Received UPDATE from 172.23.29.110 (length incl. header = 59)
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: Receive message dump for 172.23.29.110:
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: ffff ffff ffff ffff ffff ffff ffff ffff
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: 003b 0200 0000 2440 0101 0040 0206 0201
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: 0000 fbf0 800e 0a00 0185 04ac 171d 6e00
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: 00c0 1002 8007 c010 0280 07
From the dump you can see that there's a zero NLRI length so no flowspec has been passed in at all.
also you can see we've sent two copies of the extended community (c010028007). But neither copy has 6 bytes of data that are supposed to follow the 0x8007.
|
|
(In reply to Iveta Halanova from comment #3)
> shouldn't it be like this?
>
> <flowspec>
> <component-type>destination-port</component-type>
> <flowspec-type>
> <destination-ports>
> <op>equals</op>
> <value>8080</value>
> </destination-ports>
> </flowspec-type>
> </flowspec>
>
> on level of component-type is flowspec-type, then destination-ports (or
> others) are read. (from what is in code, and also tree structure in comment
> above)
Hi Iveta,
the choice and case don't appear in the instance data.
So I'd expect (with the new model):
<flowspec-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp-flowspec">
<route-key>foo</route-key>
<flowspec>
<destination-ports>
<op>equals</op>
<value>8080</value>
</destination-ports>
</flowspec>
<attributes>
<origin>
<value>igp</value>
</origin>
<ipv4-next-hop>
<global>172.23.29.110</global>
</ipv4-next-hop>
<as-path/>
<local-pref>
<pref>100</pref>
</local-pref>
<extended-communities>
<comm-type>128</comm-type>
<comm-sub-type>7</comm-sub-type>
</extended-communities>
</attributes>
</flowspec-route>
having done that it seems to work now - at least inasmuch as it advertises the route to XR. But XR doesn't much like the route it gets:
RP/0/RSP0/CPU0:i2ss-asr9k1#RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains nh 172.23.29.110/32, gw_afi 0, flags 0x20000, nlri_afi 18
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: NH-Validate-Create: addr=172.23.29.110/32, len=4, nlriafi=18, nbr=172.23.29.110, gwafi=0, gwlen=4, gwaddrlen=32::: nhout=0x5113dfec, validity=1, attrwdrflags=0x00000000
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains EXTCOMMUNITY attribute with wrong length 2
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: !!!!!!!!!!!!!:: ERROR_HANDLING<<172.23.29.110>> :: errfl=0x00000080, attrfl=0xc0, attrcode=16, attrlen=2:: errhenabled=1, action=4:: MSG=513e9854 (fl=0x00000080, finalaction=4, elemcount=1):: msglindex=4, msgcount=5
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains EXTCOMMUNITY attribute with wrong length 2
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: !!!!!!!!!!!!!:: ERROR_HANDLING<<172.23.29.110>> :: errfl=0x00000080, attrfl=0xc0, attrcode=16, attrlen=2:: errhenabled=1, action=4:: MSG=513e9854 (fl=0x00000080, finalaction=4, elemcount=2):: msglindex=4, msgcount=5
RP/0/RSP0/CPU0:Aug 27 18:31:40.333 : bgp[1050]: [default-rtr]: -bgp4_rcv_attributes-: END: nbr=172.23.29.110:: msg=0x5060fdcc/59, updlen=40, attrbl=0x5060fde3/36, ipv4reachlen=0, msginpath=0x3fbf0b00, asloopcheck=1, attrwdrfl=0x00000000:: samecluster=0, local_as_prepended=0, attr_wdr_flags 0x00000000, myascount=0:: rcvdata=0x5060fe07/0, errptr=0x5060fe02/5
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): Received unreachables from 172.23.29.110: attrcode=14, attrwdrflags=0x00000000
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): Martian network 0/ (path ID: none) in update from 172.23.29.110
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): UPDATE from 172.23.29.110 with attributes:
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): nexthop 172.23.29.110/32, origin i, path 64496
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): UPDATE from 172.23.29.110, prefix 0/ (path ID: none) DENIED due to:
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr] (ip4fs): malformed update 'treat-as-withdraw';
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: %ROUTING-BGP-3-MALFORM_UPDATE : Malformed UPDATE message received from neighbor 172.23.29.110 (VRF: default) - message length 59 bytes, error flags 0x00000080, action taken "TreatAsWdr". Error details: "Error 0x00000080, Field "Attr-length", Attribute 16 (Flags 0xc0, Length 2), Data [c0100280]". NLRIs: [IPv4 Flowspec] 0/
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: !!!#!#-!!:: Received Malformed UPDATE from nbr 172.23.29.110:: msglen=59, errflags=0x00000080, finalaction=TreatAsWdr:: elemcount=2, lastelem=
{"Error 0x00000080, Field "Attr-length", Attribute 16 (Flags 0xc0, Length 2), Data [c0100280]"}
:: ERRCTX=msglindex=4, malformcount=5, memfailcount=0
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: Received UPDATE from 172.23.29.110 (length incl. header = 59)
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: Receive message dump for 172.23.29.110:
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: ffff ffff ffff ffff ffff ffff ffff ffff
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: 003b 0200 0000 2440 0101 0040 0206 0201
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: 0000 fbf0 800e 0a00 0185 04ac 171d 6e00
RP/0/RSP0/CPU0:Aug 27 18:31:40.334 : bgp[1050]: [default-rtr]: 00c0 1002 8007 c010 0280 07
From the dump you can see that there's a zero NLRI length so no flowspec has been passed in at all.
also you can see we've sent two copies of the extended community (c010028007). But neither copy has 6 bytes of data that are supposed to follow the 0x8007.
|
|
The <flowspec-type> shouldn't be in the data (YANG choice and case statements are only in the model, not in the instance data).
I've got the route in now:
So the POST was:
<flowspec-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp-flowspec">
<route-key>foo</route-key>
<flowspec>
<destination-ports>
<op>equals</op>
<value>8080</value>
</destination-ports>
</flowspec>
<attributes>
<origin>
<value>igp</value>
</origin>
<ipv4-next-hop>
<global>172.23.29.110</global>
</ipv4-next-hop>
<as-path/>
<local-pref>
<pref>100</pref>
</local-pref>
<extended-communities>
<comm-type>128</comm-type>
<comm-sub-type>7</comm-sub-type>
</extended-communities>
</attributes>
</flowspec-route>
the route was advertised to XR, but XR didn't much like it:
RP/0/RSP0/CPU0:i2ss-asr9k1#RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains nh 172.23.29.110/32, gw_afi 0, flags 0x20000, nlri_afi 18
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: NH-Validate-Create: addr=172.23.29.110/32, len=4, nlriafi=18, nbr=172.23.29.110, gwafi=0, gwlen=4, gwaddrlen=32::: nhout=0x5113dfec, validity=1, attrwdrflags=0x00000000
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains EXTCOMMUNITY attribute with wrong length 2
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: !!!!!!!!!!!!!:: ERROR_HANDLING<<172.23.29.110>> :: errfl=0x00000080, attrfl=0xc0, attrcode=16, attrlen=2:: errhenabled=1, action=4:: MSG=513e93d4 (fl=0x00000080, finalaction=4, elemcount=1):: msglindex=0, msgcount=6
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: UPDATE from 172.23.29.110 contains EXTCOMMUNITY attribute with wrong length 2
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: !!!!!!!!!!!!!:: ERROR_HANDLING<<172.23.29.110>> :: errfl=0x00000080, attrfl=0xc0, attrcode=16, attrlen=2:: errhenabled=1, action=4:: MSG=513e93d4 (fl=0x00000080, finalaction=4, elemcount=2):: msglindex=0, msgcount=6
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr]: -bgp4_rcv_attributes-: END: nbr=172.23.29.110:: msg=0x5060fc98/59, updlen=40, attrbl=0x5060fcaf/36, ipv4reachlen=0, msginpath=0x3fbf0b00, asloopcheck=1, attrwdrfl=0x00000000:: samecluster=0, local_as_prepended=0, attr_wdr_flags 0x00000000, myascount=0:: rcvdata=0x5060fcd3/0, errptr=0x5060fcce/5
RP/0/RSP0/CPU0:Aug 27 22:18:06.631 : bgp[1050]: [default-rtr] (ip4fs): Received unreachables from 172.23.29.110: attrcode=14, attrwdrflags=0x00000000
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr] (ip4fs): Martian network 0/ (path ID: none) in update from 172.23.29.110
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr] (ip4fs): UPDATE from 172.23.29.110 with attributes:
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr] (ip4fs): nexthop 172.23.29.110/32, origin i, path 64496
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr] (ip4fs): UPDATE from 172.23.29.110, prefix 0/ (path ID: none) DENIED due to:
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr] (ip4fs): malformed update 'treat-as-withdraw';
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: %ROUTING-BGP-3-MALFORM_UPDATE : Malformed UPDATE message received from neighbor 172.23.29.110 (VRF: default) - message length 59 bytes, error flags 0x00000080, action taken "TreatAsWdr". Error details: "Error 0x00000080, Field "Attr-length", Attribute 16 (Flags 0xc0, Length 2), Data [c0100280]". NLRIs: [IPv4 Flowspec] 0/
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: !!!#!#-!!:: Received Malformed UPDATE from nbr 172.23.29.110:: msglen=59, errflags=0x00000080, finalaction=TreatAsWdr:: elemcount=2, lastelem=
{"Error 0x00000080, Field "Attr-length", Attribute 16 (Flags 0xc0, Length 2), Data [c0100280]"}
:: ERRCTX=msglindex=0, malformcount=6, memfailcount=0
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: Received UPDATE from 172.23.29.110 (length incl. header = 59)
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: Receive message dump for 172.23.29.110:
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: ffff ffff ffff ffff ffff ffff ffff ffff
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: 003b 0200 0000 2440 0101 0040 0206 0201
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: 0000 fbf0 800e 0a00 0185 04ac 171d 6e00
RP/0/RSP0/CPU0:Aug 27 22:18:06.632 : bgp[1050]: [default-rtr]: 00c0 1002 8007 c010 0280 07
you can see from the dump that the message incorrectly has an NLRI length of zero (so no match data is advertised)
you can also see that two copies of the action extended community (0x8007) are advertised but that neither one includes the traffic action bitmask.
|
|
argh, my bad. thought my comment hadn't gone in when in fact it went in twice!
|
|
https://git.opendaylight.org/gerrit/#/c/27505/
|
Generated at Wed Feb 07 19:12:31 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.