summaryrefslogtreecommitdiffhomepage
path: root/packet/bgp.go
AgeCommit message (Collapse)Author
2016-03-31move packet/*.go to packet/bgp/*.go for Go's conventionFUJITA Tomonori
Later, we move non-bgp protocol stuff like mrt under their own direcotries. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-03-31*: support draft-ietf-idr-flowspec-l2vpn-03ISHIDA Wataru
$ gobgp g ri add -a l2vpn-flowspec match destination-mac 01:01:01:01:01:01 ether-type ipv4 vid 10 cos 20 $ gobgp g ri add -a l2vpn-flowspec match source-mac 01:01:01:01:01:01 ether-type arp inner-vid 20 inner-cos 20 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-03-20*: support Opaque SignalingISHIDA Wataru
see https://tools.ietf.org/html/draft-lapukhov-bgp-opaque-signaling-01 using 16397 for AFI, 241 for SAFI, 41 for Opaque Path Attribute temporarily. $ gobgp global rib add -a opaque key hello value world Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-03-19packet: support flowspec "not-a-fragment" fragment typeFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-03-04packet: fix FlowSpecComponentItem Len()FUJITA Tomonori
If FlowSpecComponentItem object is created by API (e.g. CLI), the length info in its Op isn't initialized. So its Len() returns a bogus value. This patch initializes the length info when creating the object instead of its Serialize(). https://github.com/osrg/gobgp/issues/753 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-03-03packet: make multiple flow spec fragmentation flags ORed match instead of ANDedFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-03-04packet: fix FlowSpecComponent Len()FUJITA Tomonori
We don't need to serialize to get the length of FlowSpecComponent. Also we need to fix FlowSpecComponent()'s serialize bug that it wrongly assumes that the length can be calculated by it's value. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-03-04packet fix FlowSpecComponentItem's SerializeFUJITA Tomonori
- don't overwrite length if it was initialized because the length can't calculated from the value. For exmaple, assuming using one byte for port number < 255 is probably wrong. - don't touch FlowSpecComponentItem's Op value. Mutating is a bad idea. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-02-29cli: support ipv4-labeled, ipv6-labeled address familyISHIDA Wataru
$ gobgp global rib -a ipv4-labeled add 10.0.0.0/24 100/200 $ gobgp global rib -a ipv4-labeled Network Labels Next Hop AS_PATH Age Attrs *> 10.0.0.0/24 [100, 200] 0.0.0.0 00:00:14 [{Origin: ?}] Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-02-29packet: fix labeled-ipv6 nlri to return correct address-familyISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-02-25packet: fix strange flow spec fragment keywordsFUJITA Tomonori
"not-a-fragment" and "is-a-fragment" are renamed to "dont-fragment" and "is-fragment" respectively. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-02-25packet: multiple flow spec fragmentation flagsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-02-10packet: add end-of-rib util functionsISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-02-10packet: improve graceful restart cap usabilityISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-01-10policy: support an action to add origin-validation ext-communityISHIDA Wataru
you can implement https://tools.ietf.org/html/draft-kklf-sidr-route-server-rpki-light-00 by following commands $ gobgp policy statement st0 add condition rpki valid $ gobgp policy statement st0 add action ext-community add valid $ gobgp policy statement st1 add condition rpki not-found $ gobgp policy statement st1 add action ext-community add not-found $ gobgp policy statement st2 add condition rpki invalid $ gobgp policy statement st2 add action ext-community add invalid $ gobgp policy p0 add st0 st1 st2 $ gobgp policy p0 Name p0: StatementName st0: Conditions: RPKI result: valid Actions: ExtCommunity: COMMUNITY_ADD[valid] NONE StatementName st1: Conditions: RPKI result: not-found Actions: ExtCommunity: COMMUNITY_ADD[not-found] NONE StatementName st2: Conditions: RPKI result: invalid Actions: ExtCommunity: COMMUNITY_ADD[invalid] NONE Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-01-10packet: add origin validation extended communityISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-12-22packet: fix insufficient length checkISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-12-15api: refactor afisafi apiISHIDA Wataru
remove unused fields Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-11-24packet: fix extended community parsingISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-11-18fix IPv4-mapped addresss handlingFUJITA Tomonori
net.IP handles IPv4-mapped addresss as ipv4 so leads to the following crash: gobgpd[857]: /usr/lib/go/src/pkg/runtime/panic.c:279 +0xf5 gobgpd[857]: github.com/osrg/gobgp/table.CidrToRadixkey(0xc2080ffec0, 0xa, 0x0, 0x0) gobgpd[857]: /usr/local/opt/go/src/github.com/osrg/gobgp/table/destination.go:63 +0xb2 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-11-13packet: add String() to PathAttributeAsPath and PathAttributeAs4PathISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-11-13packet: fix PathAttributeMpReachNLRI's Serialize()FUJITA Tomonori
Properly serializes LinkLocalNexthop. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-10-21*: fix wrong types of print verbsEiichiro Watanabe
2015-10-20policy: clean upISHIDA Wataru
remove redundant api structures and shorten valiable names re-implement *ToApiStruct functions as a method of each structures Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-10-20packet: define map for well known communitiesISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-10-16packet: avoid overflowHiroshi Yokoi
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
2015-10-14*: fix Errorf call with missing format verbsEiichiro Watanabe
2015-10-14packet: fix incompatible struct field tagsEiichiro Watanabe
2015-10-09packet: add aigp path attribute serializer/decoderISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-10-08cli: enable to flag match/not for tcp-flag when adding flowspec pathISHIDA Wataru
$ gobgp global rib -a ipv4-flowspec add match tcp-flags not match rst then accept Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-10-08packet: validate flowspec port and dscp value in parserISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-10-08packet: support cisco-ish flowspec tcp-flag serializingISHIDA Wataru
// same as juniper matching ack+syn $ gobgp global rib -a ipv4-flowspec match tcp-flags ack syn then discard // [NEW] same as cisco matching ack+syn $ gobgp global rib -a ipv4-flowspec match tcp-flags 'ack&syn' then discard Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-22cli: show mpls label in vrf rib viewISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-22packet: add missing MarshalJSON() to VPN nlrisISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-16packet: support draft-ietf-idr-flow-spec-v6-06ISHIDA Wataru
you can add ipv6 flowspec routes like below $ gobgp global rib add match destination 2001::/64 10 label '=200' then discard -a ipv6-flowspec $ gobgp global rib -a ipv6-flowspec Network Next Hop AS_PATH Age Attrs *> [destination:2001::/64/10][label: =200] fictitious 00:00:23 [{Origin: i} {Extcomms: [discard]}] scenario_test is also added Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-11packet: separate bmp stuff from bgp.goFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-11packet: bug fix of flowspec numeric parserISHIDA Wataru
handle failure of regexp matching also add support of the syntax below // added syntax $ gobgp rib add -a ipv4-flowspec match port 8080 then discard // original syntax (still supported) $ gobgp rib add -a ipv4-flowspec match port '=8080' then discard Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-08packet: add ADD_PATH capabilityISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-08api: kill api.CapabilityISHIDA Wataru
keep protobuf structures simple Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-08*: kill bgp.NLRInfo and bgp.WithdrawnRouteISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-02packet: add MarshalJSON() to flowspec related structsISHIDA Wataru
make it more pretty when marshaling flowspec nlri Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-28packet: update referene to 'draft-haas-idr-flowspec-redirect-rt-bis'Jun-ya Kato
The draft was promoted to IETF WG item. It is already enqueued to RFC editors in Aug. 2015. It's expected to be published as RFC soon. Signed-off-by: Jun-ya Kato <kato.junya@lab.ntt.co.jp>
2015-08-27packet: add util methods and helper function for PathAttributePmsiTunnelISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-27packet: fix returning wrong OpaqueExtended subtypeISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-24pack multiple NLRIs into one BGP update messageFUJITA Tomonori
With this patch, bobgpd packs multiple NLRIs into one BGP update message (IOW, multiple paths into one update message). We do only with ipv4 since we could have lots of routes. If you don't have lots, it's not worth having the complicated logic for such route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-19table: withdraw self-generated vrfed routes when a vrf deletedISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-13packet/cli: don't put nexthop in flowspec mp_reach_nlri path attributeISHIDA Wataru
Reported-by: KATO Junya <kato.junya@lab.ntt.co.jp> Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-12packet: fix flowspec parser to parse >= and <=ISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-12bgp/cli: support flowspec (RFC5575)ISHIDA Wataru
draft-ietf-idr-flowspec-redirect-rt-bis-05 is also implmented. TODO: draft-ietf-idr-flow-spec-v6-06 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-12bgp: use regexp.FindStringSubmatch() insead of regexp.FindSubMatch()ISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>